TOC

This article has been localized into Chinese by the community.

流程控制:

switch语句

switch语句就像一组if语句。 这是一个可能性列表,每个可能性都有一个动作,以及一个可选的默认动作,如果没有别的评估为真。 一个简单的switch语句如下所示:

int number = 1;
switch(number)
{
    case 0:
Console.WriteLine("The number is zero!");
break;
    case 1:
Console.WriteLine("The number is one!");
break;
}

要检查的标识符放在switch关键字之后,然后是case语句列表,我们根据给定值检查标识符。 您会注意到我们在每个case结束时都有一个break语句。 C#需要在结束之前离开块。 如果您正在编写方法,则可以使用return语句而不是break语句。

在这个例子,我们使用整数,但它也可以是字符串,或任何其他简单类型。 此外,您可以为多个案例指定相同的操作。 我们也将在下一个示例中执行此操作,我们从用户那里获取一些输入并在switch语句中使用它:

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
}

在这个例子中,我们询问用户一个问题,并建议他们输入yes,no或maybe。 然后我们读取用户输入,并为其创建一个switch语句。 为了帮助用户,我们在将输入检查为小写字符串之前将输入转换为小写,以便小写和大写字母之间没有区别。

但是,用户可能会输入错误或尝试编写完全不同的内容,在这种情况下,此特定switch语句不会生成任何输出。 输入default关键字!

Console.WriteLine("Do you enjoy C# ? (yes/no/maybe)");
string input = Console.ReadLine();
switch(input.ToLower())
{
    case "yes":
    case "maybe":
Console.WriteLine("Great!");
break;
    case "no":
Console.WriteLine("Too bad!");
break;
    default:
Console.WriteLine("I'm sorry, I don't understand that!");
break;
}

如果没有任何case语句评估为true,则将执行default语句(如果有)。 它是可选的,正如我们在前面的例子中看到的那样。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!