zltzlt 发表于 2020-1-7 21:38:15

C++ 条件语句 if-else 和 switch-case-default

本帖最后由 zltzlt 于 2020-3-7 13:53 编辑

C++ 条件语句 if-else 和 switch-case-default

if-else 语句

if-else 语句的两种格式:

      if (表达式) {语句 1;}
      if (表达式) {语句 1;} else {语句 2;}

表达式为 true 时执行 if 下的语句 1,否则执行 else 下的语句 2(如果有的话)。

注意:if 语句可以没有 else 子句。在 if 语句嵌套中会产生歧义:到底每一个 if 对应哪一个 else?

C++ 中 if 语句嵌套的配对原则:每个 else 子句是和在它之前最近的一个没有 else 子句的 if 配对。

C++ if-else 语句需要注意的几点:


[*]表达式的结果值一般是 true 或 false,它们是 C++ 中的 bool 类型。
但事实上,表达式也可以为任意表达式,不一定是关系表达式。在 C++ 中 0 为 false,非 0 为 true。
[*]常见错误:表达式是比较两个值是否相等时,用了一个等号(一个等号是赋值,两个等号才是判断)。
[*]合理的缩进会使程序结构更加清晰。


switch-case-default 语句

在有多个选择条件的情况下,用 if 语句显得繁琐且效率不高。

在这时,就可以使用 switch 语句。其语法格式如下:

switch (表达式) {
      case 常量表达式 1: 语句 1; break;
      case 常量表达式 2: 语句 2; break;
      ......
      case 常量表达式 n: 语句 n; break;
      default: 语句 n+1; break;
}

整个 switch 语句的意思如下:

当表达式符合常量表达式 1,执行语句 1;
符合常量表达式 2,执行语句 2;
……
符合常量表达式 n,执行语句 n;
如果上述都不符合:执行语句 n+1。

注意:


[*]default 子句可以省略。
如果 default 子句省略,那么当表达式不等于常量表达式 1 到常量表达式 n 的值时,则直接跳出 switch 语句。
[*]break 语句一定不能少。它用于跳出当前的 switch 语句。
页: [1]
查看完整版本: C++ 条件语句 if-else 和 switch-case-default