选择逻辑 switch
switch-case-default的引入
// 根据用户的输入完成操作
if (input == "w")
{
console.log("上移");
}
else if (input == "s")
{
console.log("下移");
}
else if (input == "a")
{
console.log("左移");
}
else if (input == "d")
{
console.log("右移");
}
else
{
console.log("输入有误");
}
这个例子有两个特点:
- 每个
if都是对同一个变量的判断。 - 都是做
==判断。
这种情况下可以使用switch-case-default来实现同样的效果。
// 根据用户的输入完成操作
switch (input)
{
case "w": // 当input == "w"时
console.log("上移");
break;
case "s":
console.log("下移");
break;
case "a":
console.log("左移");
break;
case "d":
console.log("右移");
break;
default: // default与上例中else的功能一样
console.log("输入有误");
break;
}
switch-case-default语法
default相当于else的作用。当所有的case都不满足时,就执行default中的代码。每一路分支都要用
break结束。每一个
case是没有先后顺序的。default可以写在case中间,但行业要求必需写在最后。case后的数据 和switch中的变量(如上例中的input),他们的数据类型必需一致。可以多个
case共同用一段代码。但如果这个case后有语句,就必需要有break匹配。switch(判断条件) { case 语句1: //执行代码块1 break; case 语句2: //执行代码块2 break; case 语句3: //执行代码块3 break; default: //n与case1 、case2 、case3 不同时执行的代码 }// 根据用户的输入完成操作 string input = Console.ReadLine(); switch (input) { case "w": case "W": // 输入大写和小写w都执行上移 Console.WriteLine("上移"); break; case "s": case "S": Console.WriteLine("下移"); break; case "a": case "A": Console.WriteLine("左移"); break; case "d": case "D": Console.WriteLine("右移"); break; default: // default与上例中else的功能一样 Console.WriteLine("输入有误"); break; }
备注:break 是可选的,有了break后就能让程序跳出整个switch,提高程序的效率。default 也是可选的。