选择逻辑-switch
switch-case-default的引入
// 根据用户的输入完成操作
string input = Console.ReadLine();
if (input == "w")
{
Console.WriteLine("上移");
}
else if (input == "s")
{
Console.WriteLine("下移");
}
else if (input == "a")
{
Console.WriteLine("左移");
}
else if (input == "d")
{
Console.WriteLine("右移");
}
else
{
Console.WriteLine("输入有误");
}
这个例子有两个特点:
- 每个
if
都是对同一个变量的判断。 - 都是做
==
判断。
这种情况下可以使用switch-case-default
来实现同样的效果。
// 根据用户的输入完成操作
string input = Console.ReadLine();
switch (input)
{
case "w": // 当input == "w"时
Console.WriteLine("上移");
break;
case "s":
Console.WriteLine("下移");
break;
case "a":
Console.WriteLine("左移");
break;
case "d":
Console.WriteLine("右移");
break;
default: // default与上例中else的功能一样
Console.WriteLine("输入有误");
break;
}
switch-case-default语法
default
相当于else
的作用。当所有的case
都不满足时,就执行'default`中的代码。- 每一路分支都要用
break
结束。 - 每一个
case
是没有先后顺序的。 default
可以写在case
中间,但行业要求必需写在最后。case
后的数据 和 switch中的变量(如上例中的input),他们的数据类型必需一致。- 可以多个
case
共同用一段代码。但如果这个case
后有语句,就必需要有break
匹配。
// 根据用户的输入完成操作
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;
}