在本文中,您将学习使用不同形式的 if..else 语句在 C++ 程序中创建决策语句。
在计算机编程中,仅当满足特定条件时,才使用if
语句运行块代码。
例如,根据学生获得的分数分配成绩(A,B,C)。
- 如果百分比高于 90,则将等级分配为 A
- 如果百分比高于 75,则指定等级 B
- 如果百分比高于 65,请指定等级 C
C++ 中有if...else
语句的三种形式。
if
语句if...else
语句if...else if...else
语句
C++ if
语句
if
语句的语法为:
if (condition) {
// body of if statement
}
if
语句求值括号( )
内的condition
。
- 如果
condition
求值为true
,则将执行if
主体内部的代码。 - 如果
condition
求值为false
,则将跳过if
主体内部的代码。
注意:{ }
内的代码是if
语句的主体。
C ++ if
语句的原理
示例 1:C++ if
语句
// Program to print positive number entered by the user
// If the user enters a negative number, it is skipped
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
// checks if the number is positive
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
return 0;
}
输出 1
Enter an integer: 5
You entered a positive number: 5
This statement is always executed.
当用户输入5
时,条件number > 0
被求值为true
,并且执行了if
主体内部的语句。
输出 2
Enter a number: -5
This statement is always executed.
当用户输入-5
时,条件number > 0
被求值为false
,并且if
主体内部的语句不被执行。
C++ if...else
if
语句可以具有可选的else
子句。 其语法为:
if (condition) {
// block of code if condition is true
}
else {
// block of code if condition is false
}
if..else
语句求值括号内的condition
。
C++ if...else
的原理
如果condition
求值为true
,
if
体内的代码被执行else
正文中的代码从执行中跳过
如果condition
求值为false
,
else
体内的代码被执行if
正文中的代码从执行中跳过
示例 2:C++ if...else
语句
// Program to check whether an integer is positive or negative
// This program considers 0 as a positive number
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You entered a positive integer: " << number << endl;
}
else {
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
return 0;
}
输出 1
Enter an integer: 4
You entered a positive integer: 4.
This line is always printed.
在上面的程序中,我们具有条件number >= 0
。 如果我们输入大于或等于0
的数字,则条件为true
。
在这里,我们输入4
。 因此,条件为true
。 因此,将执行if
主体内部的语句。
输出 2
Enter an integer: -4
You entered a negative integer: -4.
This line is always printed.
在这里,我们输入-4
。 因此,条件为false
。 因此,将执行else
主体内部的语句。
C++ if...else if...else
语句
if...else
语句用于在两个替代方案之间执行代码块。 但是,如果需要在两个以上的选择之间进行选择,则可以使用if...else if...else
语句。
if...else if...else
语句的语法为:
if (condition1) {
// code block 1
} else if (condition2){
// code block 2
} else {
// code block 3
}
这里,
- 如果
condition1
求值为true
,则执行code block 1
。 - 如果
condition1
求值为false
,则求值condition2
。 - 如果
condition2
为true
,则执行code block 2
。 - 如果
condition2
为false
,则执行code block 3
。
if...else if...else
语句如何工作
注意:可以有多个else if
语句,但只有一个if
和else
语句。
示例 3:C++ if...else if...else
// Program to check whether an integer is positive, negative or zero
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0) {
cout << "You entered a negative integer: " << number << endl;
}
else {
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
return 0;
}
输出 1
Enter an integer: 1
You entered a positive integer: 1.
This line is always printed.
输出 2
Enter an integer: -2
You entered a negative integer: -2.
This line is always printed.
输出 3
Enter an integer: 0
You entered 0.
This line is always printed.
在此程序中,我们从用户那里获取一个号码。 然后,我们使用if...else if...else
梯形图检查数字是正数,负数还是零。
如果该数字大于0
,则执行if
块内的代码。 如果该数字小于0
,则执行else if
块内的代码。 否则,将执行else
块中的代码。
C++ if...else
嵌套
有时,我们需要在另一个if
语句内使用if
语句。 这称为嵌套if
语句。
将其视为if
语句的多层。 有第一个外部if
语句,在内部是另一个内部if
语句。 其语法为:
// outer if statement
if (condition1) {
// statements
// inner if statement
if (condition2) {
// statements
}
}
注意:
- 我们可以根据需要将
else
和else if
语句添加到内部if
语句中。 - 内部
if
语句也可以插入外部else
或else if
语句(如果存在)中。 - 我们可以嵌套
if
语句的多层。
示例 4:C++ 嵌套if
// C++ program to find if an integer is even or odd or neither (0)
// using nested if statements
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter an integer: ";
cin >> num;
// outer if condition
if (num != 0) {
// inner if condition
if ((num % 2) == 0) {
cout << "The number is even." << endl;
}
// inner else condition
else {
cout << "The number is odd." << endl;
}
}
// outer else condition
else {
cout << "The number is 0 and it is neither even nor odd." << endl;
}
cout << "This line is always printed." << endl;
}
输出 1
Enter an integer: 34
The number is even.
This line is always printed.
输出 2
Enter an integer: 35
The number is odd.
This line is always printed.
输出 3
Enter an integer: 0
The number is 0 and it is neither even nor odd.
This line is always printed.
在上面的示例中,
- 我们将一个整数作为用户的输入,并将其存储在变量
num
中。 然后,我们使用
if...else
语句检查num
是否不等于0
。- 如果为
true
,则执行内部if...else
语句。 - 如果为
false
,则执行外部else
条件内部的代码,其显示The number is 0 and it is neither even nor odd.
。
- 如果为
内部
if...else
语句检查输入的数字是否可被2
整除。- 如果为
true
,那么我们将打印一条声明该数字为偶数的语句。 - 如果
false
,我们打印该数字为奇数。
- 如果为
请注意,0
也可被2
整除,但实际上不是偶数。 这就是为什么我们首先要确保在if
外部条件下输入的数字不是0
。
注意:如您所见,嵌套的if...else
使您的逻辑变得复杂。 如果可能,您应始终避免嵌套if...else
。
只有一个语句的if...else
的主体
如果if...else
的主体只有一个语句,则可以在程序中省略{ }
。 例如,您可以替换
int number = 5;
if (number > 0) {
cout << "The number is positive." << endl;
}
else {
cout << "The number is negative." << endl;
}
与
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl;
两个程序的输出将相同。
注意:尽管如果if...else
的主体只有一个语句,则不必使用{ }
,但使用{ }
可使代码更具可读性。
有关决策的更多信息
在某些情况下,三元运算符可以替换if...else
语句。 要了解更多信息,请访问 C++ 三元运算符。
如果我们需要根据给定的测试条件在多个选项之间进行选择,则可以使用switch
语句。 要了解更多信息,请访问 C++ 开关。
查看以下示例以了解更多信息: