选择逻辑-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;
}