📜  C++ if,if … else和嵌套if … else

📅  最后修改于: 2020-09-25 04:57:06             🧑  作者: Mango

在本教程中,我们将学习if … else语句,以借助示例来创建决策程序。

在计算机编程中,仅当满足特定条件时,才使用if语句运行块代码。

例如,根据学生获得的分数分配成绩(A,B,C)。

C++中if...else语句有三种形式。

C++ if语句

if语句的语法为:

if (condition) {
   // body of if statement
}

if语句评估括号( )condition

注意: { }的代码是if语句的主体。

示例1:C++ if语句

// Program to print positive number entered by the user
// If the user enters a negative number, it is skipped

#include 
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 (condition) {
    // block of code if condition is true
}
else {
    // block of code if condition is false
}

if..else语句评估括号内的condition

如果condition评估为true

如果condition评估为false

示例2:C++ if ... else语句

// Program to check whether an integer is positive or negative
// This program considers 0 as a positive number

#include 
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 ... else if语句

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
}

这里,

注意: else if语句可以有多个,而ifelse语句只能是一个。

示例3:C++ if ... else ... else if

// Program to check whether an integer is positive, negative or zero

#include 
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其他内声明if声明。这称为嵌套if语句。

将其视为if语句的多层。有第一个外部if语句,在内部还有另一个if语句。其语法为:

// outer if statement
if (condition1) {
    // statements

    // inner if statement
    if (condition2) {
        // statements
    }
}

笔记:

  1. 我们可以根据需要在内部if语句中添加elseelse if语句。
  2. 内部if语句也可以插入外部elseelse if语句(如果存在)中。
  3. 我们可以嵌套多层if语句。

示例4:C++如果嵌套

// C++ program to find if an integer is even or odd or neither (0)
// using nested if statements

#include 
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.

在上面的示例中,

注意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++开关。

查看以下示例以了解更多信息:

C++程序检查数字是偶数还是奇数

用于检查字符是元音还是辅音的C++程序。

C++程序查找三个数字中最大的数字