分支(判断)语句
简介
一个程序默认是按照代码的顺序执行下来的,有时我们需要选择性的执行某些语句,这时候就需要分支的功能来实现。选择合适的分支语句可以提高程序的效率。
判断语句
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。
if语句
一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。如果布尔表达式为 真(非 0),则 if 语句内的代码块将被执行**,否则 if 语句结束后的第一组代码(闭括号后)将被执行。若执行的语句只有一句,则可以省略花括号。
if(boolean_expression)
{
// 如果布尔表达式为真将执行的语句
}
if...else 语句
一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
if(boolean_expression)
{
// 如果布尔表达式为真将执行的语句
}
else
{
// 如果布尔表达式为假将执行的语句
}
else if 语句
else if 语句是 if 和 else 的组合,对多个条件进行判断并选择不同的语句分支。在最后一条的 else 语句不需要再写条件。例如,若条件 1 为真,执行主体 1,条件 3 为真而条件 1 和条件 2 都为假,执行主体 3,所有的条件都为假才执行主体 4。
if (expression1) {
// 如果布尔表达式为真将执行的语句;
} else if (expression2) {
// 如果expression1为假,expression2为真将执行的语句
} else if (expression3) {
// 如果expression1、2为假,expression3为真将执行的语句
} else {
// 如果expression1、2、3为假将执行的语句
}
switch 语句
在 C++ 中,switch 语句用于基于不同的条件执行不同的代码块,它通常用来替代一系列的 if-else 语句,使代码更清晰和易读。
一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查,在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
switch(expression){
case constant-expression :
statement(s);
break; // 可选的
case constant-expression :
statement(s);
break; // 可选的
// 您可以有任意数量的 case 语句
default : // 可选的
statement(s);
}
switch 语句执行时,先求出选择句(expression)的值,然后根据选择句的值选择相应的标签(constant-expression),从标签处开始执行。其中,选择句必须是一个整数类型表达式,而标签都必须是整数类型的常量,与switch中的变量又相同的数据类型。
注意事项
break
语句: 每个case
语句末尾的break
语句是可选但必要的,用于跳出switch
语句。如果缺少break
,程序将继续执行下一个case
,这叫做"贯穿"。不过我们可能会有意使用贯穿。default
语句:default
语句是可选的,但通常在所有case
都不匹配时使用,处理所有未列出的情况。
实例:通过switch语句写一个判断星期几的程序
要求:输入一个范围为[1,1000]的变量day
,并输出今天是 {XXXDay}
(星期几的英文),如果day
取值不符合星期几的范围,则输出Invalid day
#include <iostream>
using namespace std;
int main(){
int day;
cin >> day;
switch(day){
case 1:
cout << "今天是 Monday" << endl;
break;
case 2:
cout << "今天是 Tuesday" << endl;
break;
case 3:
cout << "今天是 Wedensday" << endl;
break;
case 4:
cout << "今天是 Thursday" << endl;
break;
case 5:
cout << "今天是 Friday" << endl;
break;
case 6:
cout << "今天是 Saturday" << endl;
break;
case 7:
cout << "今天是 Sunday" << endl;
break;
default:
cout << "Invalid day" << endl;
}
}
条件运算符
在 3.1的笔记中,有记录过条件运算符。
Exp1 ? Exp2 : Exp3;
其中,Exp1、Exp2 和 Exp3 是表达式。请注意冒号的使用和位置。? : 表达式的值取决于 Exp1 的计算结果。如果 Exp1 为真,则计算 Exp2 的值,且 Exp2 的计算结果则为整个 ? : 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,且 Exp3 的计算结果则为整个 ? : 表达式的值。
Last updated