首页 > 编程笔记

C++ if else判断语句详解

所谓判断语句,也叫分支语句,指的是根据预设的条件,选择不同的语句序列执行。

在 C++ 程序中,“条件”就是一个表达式,它的结果是一个 bool 值或者某个整数值。在程序执行的过程中,如果某个条件得到了满足,或者不满足,那么程序就会沿着相应的语句序列顺序执行下去。

if语句

if 语句允许你根据某个条件执行代码块。如果条件为真,则执行if语句块内的代码。

if 语句的结构如下:
if(条件表达式)
{
    //语句 1;
}
//语句 2;
执行 if 语句时,如果条件表达式的结果为非 0 值(true),则执行 if 语句块内的代码(用语句 1 表示);反之,如果条件表达式的结果为 0(false),则跳过 if 语句块内的代码,继续执行后续的代码(用语句 2 表示)。

举个简单的例子:
#include <iostream>

int main() {
    int age;
    std::cin >> age;
    if (age > 18) {
        std::cout << "你成年了,";
    }
    std::cout << age << "岁了" << std::endl;
    return 0;
}
执行程序:

20
你成年了,20岁了

再次执行程序:

10
10岁了

第一次执行程序,age 的值为 20,if 语句的条件表达式 20>18 成立,结果为 true,所以执行 if 语句块内的代码,输出"你成年了,"。

第二次执行程序,age 的值为 10,if 语句的条件表达式 10>18 不成立,结果为 false,所以不执行 if 语句块内的代码。

if else语句

if 语句的语义是“如果……,则……”,C++ 还提供了一个 if else 语句,它的语义是“如果……,则……;否则……”。

if else的语法结构如下:
if(条件表达式)
{
    //语句 1;
}
else
{
    //语句 2;
}
//语句 3;
如果条件表达式的结果为非 0 值(true),则执行语句 1 和语句 3;否则,执行语句 2 和语句 3。

例如:
#include <iostream>

int main() {
    int age;
    std::cin >> age;
    if (age > 18) {
        std::cout << "你成年了,";
    }
    else
    {
        std::cout << "你还未成年,";
    }
    std::cout << age << "岁了" << std::endl;
    return 0;
}
执行程序:

20
你成年了,20岁了

再次执行程序:

10
你还未成年,10岁了

多个if else语句

对于多个条件,可以使用多个 if else 结构来处理。
if(判断条件1){
    语句块 1;
}else  if(判断条件 2){
    语句块 2;
}else  if(判断条件 3){
    语句块 3;
}else  if(判断条件 m){
    语句块 m;
}else{
     语句块 n;
}
意思是,从上到下依次检测判断条件,当某个判断条件成立时,则执行其对应的语句块,然后跳到整个 if else 语句之外继续执行其他代码。如果所有判断条件都不成立,则执行语句块 n,然后继续执行后续代码。

也就是说,一旦遇到能够成立的判断条件,则不再执行其他的语句块,所以最终只能有一个语句块被执行。

例如,利用多个 if else 结构判断气温:
#include <iostream>

int main() {
    int temperature;
    std::cin >> temperature;

    if (temperature > 30) {
        std::cout << "天气炎热,";
    }
    else if (temperature > 15) {
        std::cout << "天气适中,";
    }
    else {
        std::cout << "天气寒冷,";
    }
    std::cout << "感谢使用" << std::endl;
    return 0;
}
执行程序:

32
天气炎热,感谢使用

嵌套的if else语句

所谓嵌套,指的是 if else 结构中的语句块可以是另外一个 if else 语句。例如:
if(条件表达式 1)
{
    if(条件表达式 2)
    {
        //语句 1;
    }
    else
    {
        //语句 2;
    }
}
else
{
    if(条件表达式 3)
    {
        //语句 3;
    }
    else
    {
        //语句 4;
    }
}
//语句 5;
其中的每个语句又可以是一个 if else 结构,依次类推。

在嵌套的 if else 语句中,相配的 if 和 else 不是靠缩进决定的,遵循的规则是:else 和最后出现、并且没有匹配的 if 相匹配。

例如在上述例子中,相互匹配的 if 和 else 分别是:
举个简单的例子:
#include <iostream>

int main() {
    int number;
    std::cin >> number;
    std::cout << number;
    if (number > 0) {
        std::cout << " 是正数,而且是";
        if (number % 2 == 0) {
            std::cout << "正偶数。";
        }
        else {
            std::cout << "正奇数。";
        }
    }
    else {
        std::cout << "是负数。";
    }
    return 0;
}
运行结果为:

10
10 是正数,而且是正偶数。

总结

C++ 中的 if else 判断语句是程序逻辑和流程控制的核心。从简单的条件检查到复杂的多分支判断,if else 语句为程序提供了灵活性和响应能力。

了解并掌握 if else 语句的使用是成为有效 C++ 程序员的关键步骤。这个强大的工具允许程序在运行时做出决策,从而使代码能够适应不同的情况和需求。

推荐阅读