决策是根据某些条件确定语句应执行的顺序,或重复一组语句直到满足某些指定条件的过程。
为了使决策结构能够工作,程序员必须指定一个或多个条件供程序评估或测试,以及如果条件为真时要执行的一个或多个语句,以及可选地,如果条件为假时要执行的附加语句。
大多数编程语言中典型的决策结构的一般形式如下所示。
C++ 支持以下语句来处理决策
在 if 语句中,一个布尔表达式后跟一个或多个语句。根据要测试的条件的复杂性,if 语句可以以多种方式实现。
各种形式如下
最简单的决策语句是 if 语句。它用于确定是否执行特定的语句或语句块,即,如果特定条件为真,则执行一个语句块,否则不执行该语句块。

简单 if 语句的语法
if(expression)
{
statement-inside;
}
statement-outside;
如果表达式为真,则执行“statement-inside”;否则,它将被跳过,只执行“statement-outside”。
示例:编写一个程序,打印用户输入的正数,如果用户输入负数,则跳过。
#include <iostream>
using namespace std;
int main() {
int number;
cout << " Please enter an integer: ";
cin >> number;
// checks whether if the given number is positive
if (number > 0) {
cout << " yes you entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
return 0;
}
输出1
Please enter an integer: 8 yes you entered a positive integer: 8 This statement is always executed.
当用户输入 8 时,条件 number > 0 被评估为真,if 主体内的语句成功执行。
输出2
Please enter an integer: -9 This statement is always executed.
当用户输入 -9 时,条件 number > 0 被评估为假,if 主体内的语句不被执行。
if(expression)
{
statement-block1;
}
else
{
statement-block2;
}
如果“表达式”为真或返回真,则执行“statement-block1”;否则,跳过“statement-block1”并执行“statement-block2”。


如果条件为真,则执行 if 主体内的代码,并跳过 else 主体内的代码而不执行。
假设如果条件被发现为假,则执行 else 主体内的代码,而不执行 if 主体内的代码。
例如:让我们编写一个程序来检查一个整数是正数还是负数,根据这个程序,0 被认为是正数。
#include <iostream>
using namespace std;
int main() {
int number;
cout << " Please enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You successfully entered a positive integer: " << number << endl;
}
else {
cout << "You successfully entered a negative integer: " << number << endl;
}
cout << "This is always printed..";
return 0;
}
输出1
Please enter an integer: 2 You successfully entered a positive integer: 2 This is always printed..
在前面的程序中存在条件 number >= 0。如果我们输入的数字大于或等于零,那么条件为真。
假设我们输入了一个整数 2,那么条件就满足了。因此,if 主体内的语句成功执行。
输出2
Please enter an integer: -1 You successfully entered a negative integer: -1 This is always printed..
假设我们输入了一个整数 -1,那么条件未满足。因此,else 主体内的语句成功执行。
if(expression 1)
{
statement-block1;
}
else if(expression 2)
{
statement-block2;
}
else if(expression 3 )
{
statement-block3;
}
else
default-statement;
表达式从上到下进行测试。一旦发现真条件,与其关联的语句就会被执行。

例如,
让我们用 else if 语句编写一个 C++ 程序,来判断一个整数是正数、负数还是零。
#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 is always printed..";
return 0;
}
输出
Enter an integer: 2 You entered a positive integer: 2 This is always printed.. Enter an integer: -1 You entered a negative integer: -1 This is always printed.. Enter an integer: 0 You entered 0. This is always printed.
如果值大于零,则执行 if 块内的代码。如果值小于零,则执行 else if 块内的代码。否则,执行 else 块内的代码。
有时我们可能需要在一个 if 语句内部使用另一个 if 语句。这被称为嵌套 if 语句。

嵌套 if 语句的语法
if (expression) {
if (expression1) {
statement - block1;
} else {
statement - block2;
}
} else {
statement - block3;
}
如果“表达式”为假或返回假,则执行“statement-block3”;否则,执行进入 if 条件并检查“expression 1”。然后,如果“expression 1”为真或返回真,则执行“statement-block1”;否则,执行“statement-block2”。
例如
让我们用嵌套 if 语句编写一个 C++ 程序,来判断一个整数是正数、负数还是零。
#include <iostream>
using namespace std;
int main() {
int num;
cout << " Please enter an integer: ";
cin >> num;
// outer if condition
if (num != 0) {
// inner if condition
if (num > 0) {
cout << "yes the number is positive." << endl;
}
// inner else condition
else {
cout << "yes the number is negative." << endl;
}
}
// outer else condition
else {
cout << "The number is 0 and it is neither positive nor negative." << endl;
}
cout << "This is always printed.." << endl;
return 0;
}
输出
Please enter an integer: 4 yes the number is positive. This is always printed.. Please enter an integer: -9 yes the number is negative. This is always printed.. Please enter an integer: 0 The number is 0 and it is neither positive nor negative. This is always printed..
在上面的程序中;我们从用户那里接受一个整数并将其存储在变量 num 中。然后,我们使用一个 if...else 语句来检查 num 是否不等于零。
内部的 if...else 语句确定输入的数字是否为正数,即 num 是否大于零。
C++ 支持的用于处理决策的 switch 语句、条件运算符语句和 goto 语句将在下一篇教程中讨论。