C# 语言之条件语句

条件语句是用来判断给定的条件是否满足(表达式值是否为0),并根据判断的结果(真或假)决定执行的语句,选择结构就是用条件语句来实现的。条件语句可以给定一个判断条件,并在程序执行过程中判断该条件是否成立,根据判断结果执行不同的操作,从而改变代码的执行顺序,实现更多的功能。

下图是大多数条件语句执行的示例图:

C# 种的条件语句大致分为两种:if/else if/if elseswitch

if / else if/ if else

if 我们可以理解为 如果。比如,如果变量 i 大于 0 ,我们就输出 i

  1. int i = -1;
  2. if (i > 0)
  3. {
  4. Console.WriteLine(i);
  5. }
  6. // 没有输出

else if 属于 if 语句的分支,当 if 语句判断不成立,会继续执行 else if 的判断,else if 可以有无限多个,执行顺序从上到下依次执行:

  1. int integral = 502;
  2. if (integral >= 1000)
  3. {
  4. Console.WriteLine("钻石会员");
  5. }
  6. else if (integral >= 500)
  7. {
  8. Console.WriteLine("黄金会员");
  9. }
  10. else if (integral >= 100)
  11. {
  12. Console.WriteLine("白银会员");
  13. }
  14. else if (integral > 0)
  15. {
  16. Console.WriteLine("普通会员");
  17. }
  18. // 输出黄金会员

else 可以理解为 否则,总是出现在if后面,不能单独存在,只有在if 或者 else if执行完毕并且判断不成立的情况下才会执行。比如,在上面的例子结尾追加上 :

  1. else
  2. {
  3. Console.WriteLine("非会员");
  4. }
  5. // integral 小于等于 0 时,输出 非会员

if / else if() 里面允许有多个 判断逻辑,比如,判断一个会员是不是黄金会员:

  1. if (integral >= 500 && integral < 1000)
  2. {
  3. Console.WriteLine("黄金会员");
  4. }
  5. // 如果积分大于等于500,并且小于1000

switch

switch 语句通过将参数,与每个 case 分支比对,如果符合,则执行 case 下的逻辑,如果不符合继续执行下面的case ,直到 执行完毕。下面是 switch 的使用示例:

  1. switch(expression){
  2. case constant-expression :
  3. statement(s);
  4. break;
  5. case constant-expression :
  6. statement(s);
  7. break;
  8. default :
  9. statement(s);
  10. }

switch 语句的一些注意事项与说明:

  • switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。

  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。

  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。

  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。

  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。

  • 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。

  1. int week = 6;
  2. switch (week)
  3. {
  4. case 1:
  5. case 2:
  6. case 3:
  7. case 4:
  8. case 5:
  9. Console.WriteLine("工作日");
  10. break;
  11. default:
  12. Console.WriteLine("休息日");
  13. break;
  14. }
  15. // 输出:休息日
  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

三元运算符 ?:

?: 运算符是 if else 的一种简洁表达方式,语法:条件表达式?逻辑1:逻辑2

  1. int age = 19;
  2. Console.WriteLine(age >= 18 ? "成年" : "未成年");
  3. // 输出:成年