C++ if分支语句用法详解(附带实例)
在编程时,我们经常需要根据条件来决定执行哪些代码,这就需要用到分支语句。
if 语句是 C++ 中最常见的分支语句之一,用于根据条件进行分支控制。其基本形式如下:
例如,我们可以用 if 语句来检查一个数是否为奇数:
如果要在 condition 中使用复合条件,则需要利用逻辑运算符 && 和 || 进行逻辑运算。&& 和 || 是逻辑运算符:
例如,若希望同时满足条件 c1 和 c2,则可以这样编写:
如果希望 c1 和 c2 两个条件只要有一个为真时,可以这样编写:
如果想要构造更复杂的条件,可以配合圆括号来编写(圆括号的优先级最高,类似于四则运算中的圆括号)。需要注意的是,在 C++ 的条件表达式中,不存在数学中常用的方括号([]),所有括号都用圆括号(()):
以下是一些 if 语句的示例程序。
【实例 1】根据年龄判断是否成年。程序代码如下:
【实例 2】根据分数判断成绩等级。程序代码如下:
例如,我们可以使用三目运算符来找出两个数中的较大值:
请务必注意,三目运算符会返回一个值,而不是执行一条语句,同时需要保证冒号两边的值类型相同:
三目运算符可以使代码更为简洁,增强可读性。但在某些场景下,过度使用三目运算符可能会让代码变得更加难以理解(尽可能避免嵌套使用三目运算符)。因此,我们应当谨慎使用,以防止代码变得难以阅读和维护。
if 语句是 C++ 中最常见的分支语句之一,用于根据条件进行分支控制。其基本形式如下:
// condition 是需要满足的条件 if (condition) { // codes to be executed if condition is true // 条件满足后,就会执行此处花括号中的语句块 } else { // 条件不满足,执行这里的语句块 }其中,condition 是一个布尔表达式,如果其值为 true,则执行 if 块中的代码;否则执行 else 块中的代码。
例如,我们可以用 if 语句来检查一个数是否为奇数:
// 定义一个整数变量 num,并赋值为 3 int num = 3; // 使用 if 语句检查 num 是否为奇数 if (num % 2 == 1) { // 如果 num 除以 2 的余数等于 1,则说明它是奇数 // 输出 num 是奇数的信息 cout << num << " is an odd number."; }
如果要在 condition 中使用复合条件,则需要利用逻辑运算符 && 和 || 进行逻辑运算。&& 和 || 是逻辑运算符:
- && 是“逻辑与”运算符,只有当两个操作数都为真(true)时,结果才为真。如果某一个操作数为假(false),那么无论另一个操作数是什么值,结果都是假;
- || 是“逻辑或”运算符,只要两个操作数中有一个为真,结果就为真。如果某一个操作数为真,那么无论另一个操作数是什么值,结果都是真。
例如,若希望同时满足条件 c1 和 c2,则可以这样编写:
if (c1 && c2) { // 当 c1、c2 同时为真时,执行这里的语句块 }
如果希望 c1 和 c2 两个条件只要有一个为真时,可以这样编写:
if (c1 || c2) { // 当 c1 和 c2 中至少一个为真时,执行这里的语句块 }
如果想要构造更复杂的条件,可以配合圆括号来编写(圆括号的优先级最高,类似于四则运算中的圆括号)。需要注意的是,在 C++ 的条件表达式中,不存在数学中常用的方括号([]),所有括号都用圆括号(()):
if (c1 || (c2 && c3)) { // 当 c1 为真,或(c2、c3)同时为真时,执行这里的语句块 } else if (c2) { // 当上一个条件不满足,但是满足 c2 为真时,执行这里的语句块 }
在算法竞赛中,if 语句被广泛用于控制程序的流程,例如在动态规划中,我们需要根据特定条件来更新状态值,或者在图论中,根据结点是否已访问来决定是否进一步探索等。
以下是一些 if 语句的示例程序。
【实例 1】根据年龄判断是否成年。程序代码如下:
// 定义一个整数变量 age,并赋值为 18 int age = 18; // 使用 if 语句检查 age 是否大于或等于 18 if (age >= 18) { // 如果 age 大于或等于 18,则输出提示信息 cout << "你已经成年了。" << endl; } else { cout << "你还没成年。" << endl; }
【实例 2】根据分数判断成绩等级。程序代码如下:
// 定义一个整数变量 score,并赋值为 85 int score = 85; // 使用 if-else 语句判断分数等级 if (score >= 90) { // 如果分数大于或等于 90,则输出 "Grade: A" cout << "Grade: A" << endl; } else if (score >= 80) { // 如果分数大于或等于 80 且小于 90,则输出 "Grade: B" cout << "Grade: B" << endl; } else if (score >= 70) { // 如果分数大于或等于 70 且小于 80,则输出 "Grade: C" cout << "Grade: C" << endl; } else if (score >= 60) { // 如果分数大于或等于 60 且小于 70,则输出 "Grade: D" cout << "Grade: D" << endl; } else { // 如果分数小于 60,则输出 "Grade: F" cout << "Grade: F" << endl; }
C++三目运算符
除 if 语句外,C++ 还提供了一种更为简洁的分支控制方式,那就是三目运算符(?:),也被称为三元运算符。它的形式如下:condition ? expression_if_true : expression_if_false如果 condition 为真(true),则表达式的值为 expression_if_true,否则为 expression_if_false。
例如,我们可以使用三目运算符来找出两个数中的较大值:
int a = 3, b = 4; int max_value = a > b ? a : b; // 返回4
请务必注意,三目运算符会返回一个值,而不是执行一条语句,同时需要保证冒号两边的值类型相同:
// 返回两个数中较大的数 int getMax(int a, int b) { // 以下写法是错误的,因为三目运算符会返回一个值,而不是像 if 那样执行一段语句 // a > b ? return a : return b; // 以下写法也是错误的,冒号两边需要有相同的数据类型 // return a > b ? a : "Hello"; // 以下是正确的写法 return a > b ? a : b; }
三目运算符可以使代码更为简洁,增强可读性。但在某些场景下,过度使用三目运算符可能会让代码变得更加难以理解(尽可能避免嵌套使用三目运算符)。因此,我们应当谨慎使用,以防止代码变得难以阅读和维护。