C#中的switch语句是一种多分支选择语句,它可以根据不同的情况执行不同的代码块。它与if-else语句有着相似的功能,但是switch语句更加简洁,而且在处理大量分支时更加方便。
switch语句由一个表达式和若干case子句组成。表达式的值会与case子句中的值进行匹配,如果匹配成功,就会执行对应的代码块。如果所有case子句都不匹配,就会执行default子句中的代码块。
switch (expression) { case value1: // code to be executed if expression = value1; break; case value2: // code to be executed if expression = value2; break; ... default: // code to be executed if expression doesn't match any of the values; }
上面是一个switch语句的标准格式:expression是要进行匹配的表达式;value1、value2...是要进行匹配的值;default子句是当expression不匹配任何case子句时要执行的代码块。
在使用switch语句时要注意几点:
if语句语法对于使用过程语言进行任何编程的任何人都应该是非常直观的:
if (condition)
statement(s)
else
statement(s)
如果要作为条件的一部分执行多个语句,则这些语句需要使用大括号({。})组合在一个块中。
bool isZero;
if (i == 0) {
isZero = true;
Console.WriteLine("i is Zero");
} else {
isZero = false;
Console.WriteLine("i is Non-zero");
}
如果bool表达式为真,if语句执行语句。
例如:
if (5 < 2 * 3) {
Console.WriteLine ("true"); // true
}
该语句可以是一个代码块:
if (5 < 6) {
Console.WriteLine ("true");
Console.WriteLine ("Let"s move on!");
}
if
语句可以可选地具有 else
子句:
if (1 == 2){
Console.WriteLine ("equal");
}else{
Console.WriteLine ("False"); // False
}
在 else
子句中,您可以嵌套另一个 if
语句:
if (4 == 5){
Console.WriteLine ("4 is 5");
}else if (2 + 2 == 4) {
Console.WriteLine ("4 is 4"); // Computes
}
switch
语句可以基于可能值的选择来分支程序执行。
例如:
void ShowCard(int cardNumber) {
switch (cardNumber) {
case 13:
Console.WriteLine ("King");
break;
case 12:
Console.WriteLine ("Queen");
break;
case 11:
Console.WriteLine ("Jack");
break;
case -1:
goto case 12;
default:
Console.WriteLine (cardNumber);
break;
}
}
我们可以打开可以静态求值的以下类型的表达式
在每个case子句的末尾,我们必须设置跳转语句执行的下一步。
这里是选项:
当多个值应该执行相同的代码时,可以顺序列出常见情况:
switch (cardNumber) {
case 13:
case 12:
case 11:
Console.WriteLine ("J Q K");
break;
default:
Console.WriteLine ("Number");
break;
}
C# 预处理器指令预处理器指令为编译器提供有关代码区域的附加信息。最常见的预处理器指令是条件指令。例子:#define DEBUGclass ...
C# 匿名类型匿名类型是由编译器在运行时创建的一个类,用于存储一组值。要创建匿名类型,请使用 new 关键字,后跟对象初始值设定...
C# 动态绑定动态绑定会将类型,成员和操作的解析过程从编译时延迟到运行时。使用上下文关键字 dynamic 声明动态类型:dynamic d =...
C# XML文档文档注释是用于记录类型或成员的嵌入式XML。文档注释紧接在类型或成员声明之前,并以三个斜杠开头:/// summaryCancel...