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

results matching ""

    No results matching ""