CC++ & Algorithm

C++ if 语句基础

简单38
语言版本:C++Python
概述:学习如何使用 if 语句让程序根据条件做出不同的选择,就像过马路看红绿灯一样。

程序也会做判断——认识 C++ 里的 if 语句

想象一下,妈妈对你说:“如果下雨,就带伞。”在 C++ 里,我们也用 if 语句 来做类似的选择。if 语句能让程序判断一个条件是不是真的(就像看雨有没有下),如果条件是真的,就执行我们指定的代码;如果条件是假的,就跳过不做。

一、if 语句长什么样?

写 if 语句要记住一个固定格式:

if (条件) {
    // 当条件为真时,执行这里的代码
}
  • 条件 要写在圆括号 ( ) 里,比如 (age >= 18)(score == 100)
  • 要执行的代码用花括号 { } 包起来,里面可以写一行或多行。
  • 条件通常是一个比较表达式,比较的结果只有两种:真(true)或假(false)。如果条件为真,程序就进入花括号;如果为假,就跳过整个花括号,继续往下走。

常用的比较符号(关系运算符)

符号含义例子
>大于a > 10
<小于b < 5
>=大于等于c >= 0
<=小于等于d <= 100
==等于(注意是两个等号)e == 50
!=不等于f != 0

二、像红绿灯一样,条件决定程序走哪条路

例子1:判断正数(原例子)

我们写一个小程序:输入一个整数,如果它大于 0,就输出“正数”。

#include <iostream>
using namespace std;
int main() {
    int a;               // 定义一个整数变量a
    cout << "请输入一个整数:";
    cin >> a;
    if (a > 0) {
        cout << "这是一个正数" << endl;
    }
    cout << "程序结束" << endl;
    return 0;
}

当你输入 5 时,条件 a > 0 为真,屏幕上会显示“这是一个正数”,然后显示“程序结束”。如果你输入 -3,条件为假,直接跳过花括号里的输出语句,只显示“程序结束”。

例子2:判断是否成年

写一个程序,输入年龄,如果年龄大于等于 18,就输出“你已经成年了”。

#include <iostream>
using namespace std;
int main() {
    int age;             // 年龄
    cout << "请输入你的年龄:";
    cin >> age;
    if (age >= 18) {
        cout << "你已经成年了" << endl;
    }
    cout << "再见!" << endl;
    return 0;
}

例子3:用多个 if 判断不同的范围

有时候你会连续用好几个 if 语句,分别处理不同情况。比如输入一个分数,如果大于等于 60 就输出“及格”,如果大于等于 90 再输出“优秀”。注意:这些 if 是独立的,每个都会判断。

#include <iostream>
using namespace std;
int main() {
    int score;           // 分数
    cout << "请输入你的考试分数(0-100):";
    cin >> score;
    if (score >= 60) {
        cout << "恭喜,你及格了!" << endl;
    }
    if (score >= 90) {
        cout << "太棒了,成绩优秀!" << endl;
    }
    return 0;
}

当你输入 95 时,两个条件都成立,屏幕上会显示两行话:“恭喜,你及格了!”和“太棒了,成绩优秀!”。

三、新手容易踩的坑

  1. 条件里用了单个等号 =
    这是最常见的错误!= 是赋值,== 才是判断相等。
    ❌ 错误写法:if (a = 5) ← 这会先把 5 赋给 a,然后判断 a 是不是非零(永远是 5,非零,所以条件永远为真)。
    ✅ 正确写法:if (a == 5)

  2. 忘记写花括号
    如果 if 后面只跟一条语句,可以省略花括号,但新手最好每次都写上花括号,以免后面加语句时忘记加括号,导致意料之外的结果。
    ❌ 错误写法:

    if (age >= 18)
        cout << "成年了";
        cout << "这句永远会执行";  // 注意:这条语句不在if里!
    

    ✅ 正确写法:

    if (age >= 18) {
        cout << "成年了";
        cout << "这条也在if里";
    }
    
  3. 在 if 条件后面加分号
    ❌ 错误写法:if (age >= 18); ← 分号让 if 语句结束,花括号里的代码就不受控制了。
    ✅ 正确写法:不要加分号,直接跟花括号。

  4. 比较时写反了
    比如判断是否小于 0,写成了 a > 0。一定要仔细检查符号方向。

四、完整示例:判断数字是正数、负数还是零

下面这个程序可以接受用户输入一个整数,然后分别用 if 语句判断正负和零。注意,这里用了三个独立的 if(但更好用 if-else 链,之后会学到)。

#include <iostream>
using namespace std;
int main() {
    int num;             // 输入的数字
    cout << "请输入一个整数:";
    cin >> num;
    if (num > 0) {
        cout << "这是一个正数" << endl;
    }
    if (num < 0) {
        cout << "这是一个负数" << endl;
    }
    if (num == 0) {
        cout << "这是零" << endl;
    }
    cout << "判断完毕!" << endl;
    return 0;
}

运行示例:

请输入一个整数:-5
这是一个负数
判断完毕!

五、小练习

  1. 写一个程序,输入你的年龄,如果年龄大于等于 18,就输出“你已经成年了”。试试看吧!
  2. 写一个程序,输入一个整数,如果它能被 2 整除(即 num % 2 == 0),就输出“偶数”。(提示:取余运算符 % 可以得到除法余数)

记住:if 语句就像程序里的“小红绿灯”——条件为真就绿灯通过,为假就红灯跳过。学会它,你的程序就能自己“做决定”啦!

六、接下来学什么?

  • if-else 语句:让程序在条件为真和假时分别执行不同的代码,比如“如果下雨就带伞,否则就不带”。
  • if-else if-else 链:处理多个条件,比如根据分数给出 A、B、C、D 等级。
  • 逻辑运算符(&&、||、!):把多个条件组合起来,比如“年龄大于 18 并且有驾照”。

掌握了 if 语句,你就打开了选择结构的大门,加油!

例题精讲

1单选题

在C++中,以下哪个是if语句的正确写法?

Aif x > 0 { }
Bif (x > 0) { }
Cif [x > 0] { }
Dif (x > 0) then { }
2判断题

在C++中,if语句的条件表达式的值可以是任意整数,非零表示真,零表示假。

3填空题
以下程序判断输入的整数是否为正数,请补全代码。
#include <iostream>
using namespace std;
int main() {
    int num;
    cin >> num;
    if (___)
        cout << "正数" << endl;
    return 0;
}
4单选题

int a = 5, b = 10; 执行 if (a = b) 后,会发生什么?

A条件为真,因为a等于b
B条件为假,因为a不等于b
C编译错误,因为赋值不能作为条件
D条件为真,因为赋值表达式的结果是10(非零)
5判断题

if语句后面如果只有一行代码,可以不使用花括号。