简介
- C++ 中的判断
C++ 判断
-
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。
- 判断语句
- if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
- if…else 语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
- 嵌套 if 语句 您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
- switch 语句 一个 switch 语句允许测试一个变量等于多个值时的情况。
- 嵌套 switch 语句 您可以在一个 switch 语句内使用另一个 switch 语句。
- ?: 运算符
- 这是条件运算符,可以用来代替if…else语句。它的一般形式如下:
Exp1 ? Exp2 : Exp3;
- 其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。
- ? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。
- 这是条件运算符,可以用来代替if…else语句。它的一般形式如下:
C++ if 语句
-
一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
- 语法
1 2 3 4
if(boolean_expression) { // 如果布尔表达式为真将执行的语句 }
- 如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。
- C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
C++ if…else 语句
-
一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
- 语法
1 2 3 4 5 6 7 8
if(boolean_expression) { // 如果布尔表达式为真将执行的语句 } else { // 如果布尔表达式为假将执行的语句 }
-
如果布尔表达式为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码。
- if…else if…else 语句
- 一个 if 语句后可跟一个可选的 else if…else 语句,这可用于测试多种条件。
- 当使用 if…else if…else 语句时,以下几点需要注意:
- 一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。
- 一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。
- 一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。
- 语法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
if(boolean_expression 1) { // 当布尔表达式 1 为真时执行 } else if( boolean_expression 2) { // 当布尔表达式 2 为真时执行 } else if( boolean_expression 3) { // 当布尔表达式 3 为真时执行 } else { // 当上面条件都不为真时执行 }
C++ 嵌套 if 语句
- 在 C++ 中,嵌套 if-else 语句是合法的,这意味着您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
- 嵌套 if 语句是一种 if 语句的变体,其中一个 if 语句可以在另一个 if 语句中嵌套。
-
嵌套 if 语句可以帮助您更精确地测试多个条件。
- 语法
1 2 3 4 5 6 7 8
if( boolean_expression 1) { // 当布尔表达式 1 为 true 时执行 if(boolean_expression 2) { // 当布尔表达式 2 为 ture 时执行 } }
- 您可以嵌套 else if…else,方式与嵌套 if 语句相似。
1 2 3 4 5 6 7 8 9 10 11 12
if (condition1) { // 如果 condition1 为 true,则执行此处的代码块 if (condition2) { // 如果 condition2 也为 true,则执行此处的代码块 } else { // 如果 condition2 为 false,则执行此处的代码块 } } else { // 如果 condition1 为 false,则执行此处的代码块 }
C++ switch 语句
-
一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。
- 语法
1 2 3 4 5 6 7 8 9 10 11 12
switch(expression){ case constant-expression : statement(s); break; // 可选的 case constant-expression : statement(s); break; // 可选的 // 您可以有任意数量的 case 语句 default : // 可选的 statement(s); }
- switch 语句必须遵循下面的规则:
- switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
- 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
- case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
- 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
- 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
- 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
- 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
C++ 嵌套 switch 语句
- 您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。即使内部和外部 switch 的 case 常量包含共同的值,也没有矛盾。
-
C++ 中的 switch 语句允许至少 256 个嵌套层次。
- 语法
1 2 3 4 5 6 7 8 9 10 11 12
switch(ch1) { case 'A': cout << "这个 A 是外部 switch 的一部分"; switch(ch2) { case 'A': cout << "这个 A 是内部 switch 的一部分"; break; case 'B': // 内部 B case 代码 } break; case 'B': // 外部 B case 代码 }