CC++ & Algorithm

C++ if 语句

中等25
语言版本:C++Python
概述:学习如何使用if语句让程序根据条件决定要不要做某件事,就像过马路看红绿灯一样。

C++ if 语句:让程序学会“看情况办事”

小朋友们,你们有没有遇到过这种情况:妈妈说要先写完作业才能看电视,或者爸爸说如果考试考到90分以上就奖励一个冰淇淋。在C++程序里,我们也经常需要根据某个条件来决定要不要执行一段代码。这时候就要用到 if 语句 了。

if 语句就像马路上的红绿灯。绿灯亮了,我们就过马路;红灯亮了,我们就停下。在程序里,如果条件成立(像绿灯),就执行花括号里的代码;如果条件不成立(像红灯),就跳过什么都不做。

if 语句长什么样?

先来看 if 语句的基本格式:

if (条件) {
    // 条件成立时执行的代码
}

这里的“条件”通常是一个比较式子,比如 score >= 60(分数大于等于60),或者 age > 12(年龄大于12)。条件的结果要么是“真”(成立),要么是“假”(不成立)。如果条件为真,就执行花括号里的内容;如果为假,就跳过整个花括号,继续往下执行。

注意:条件一定要放在圆括号 () 里,要执行的代码放在花括号 {} 里。如果花括号里只有一行代码,也可以不写花括号,但建议初学时都写上,避免出错。

条件怎么写?——比较运算符

要写出条件,我们需要用一些比较运算符来比较两个东西。就像数学课上的大于、小于一样。C++ 里常用的比较运算符有:

运算符含义例子条件成立的情况
>大于money > 10钱数大于10元
<小于age < 18年龄小于18岁
>=大于等于score >= 60分数不小于60分
<=小于等于hour <= 8小时数不超过8
==等于(注意是两个等号)num == 5num正好等于5
!=不等于answer != 0answer不等于0

特别提醒:在C++里,判断相等要用两个等号 ==,一个等号 = 是赋值的意思,千万别搞混!比如写 if (score = 60) 就错了,它会先把60赋值给score,然后判断这个值是否为真(非0就是真),结果永远是“真”,条件永远成立。

生活中的例子:零花钱买零食

假设你每周有20元零花钱,你想买一包5元的薯片。如果钱够,就买;不够,就不买。用程序写出来就是这样:

#include <iostream>
using namespace std;

int main() {
    int money = 20;      // 你的零花钱,单位:元
    int price = 5;       // 一包薯片的价格,单位:元
    if (money >= price) {
        cout << "钱够,可以买薯片啦!" << endl;
    }
    return 0;
}

运行后屏幕上会显示“钱够,可以买薯片啦!”如果把 money 改成3,条件不成立,屏幕上就什么也不显示。

完整的示例:考试及格判断

我们来看一个更完整的例子:判断一个同学的考试分数是否及格(60分及格)。如果及格,就输出“恭喜你,及格了!”;如果不及格,目前先什么都不做。

#include <iostream>
using namespace std;

int main() {
    int score = 75;   // 假设考了75分
    if (score >= 60) {
        cout << "恭喜你,及格了!" << endl;
    }
    return 0;
}

运行这段代码,屏幕上会显示“恭喜你,及格了!”。如果分数是58,条件不成立,屏幕上就什么也不显示。

小朋友们可以试着把 score 改成不同的数字,比如 45、80、60,看看结果有什么不同。注意,改成60时条件也是成立的(因为 >= 包含等于),所以也会显示“恭喜你,及格了!”

常见错误(新手最容易犯的错)

  1. 忘了写花括号:如果if后面只有一行代码,可以省略花括号。但如果有多行,忘了花括号会导致只有第一行被条件控制,后面的代码不管条件成不成立都会执行。所以初学者最好永远写上花括号

    错误示例:

    if (score >= 60)
        cout << "及格了" << endl;
        cout << "这句话不受if控制,总会输出" << endl;  // 糟糕!
    
  2. 条件里用了一个等号if (score = 60) 会先把60赋给score,然后判断score是否为真(非0就是真),永远成立。应该用 ==

  3. 忘记加分号:if 条件后面的圆括号后面不需要分号,而花括号里的每条语句最后都需要分号。

    if (score >= 60);   // 多了一个分号,相当于条件后面跟了一个空语句,花括号里的代码就变成无条件执行了
    {
        cout << "错了错了" << endl;
    }
    
  4. 条件写反了:比如用 < 代替了 >,导致条件总是假的。写的时候要仔细想清楚:什么情况下条件成立?

小挑战:试试改变条件

你可以自己动手修改上面的例子,让程序判断:

  • 如果零花钱大于等于10元,就输出“可以买两支冰淇淋”
  • 如果游戏得分大于100,就输出“恭喜你,通关了!”

多试试不同的条件和数值,你就能很快掌握 if 语句啦。

下一步可以学什么?

学会了 if 语句,你的程序已经能“做决定”了。但有时我们需要处理“条件成立时做一件事,条件不成立时做另一件事”,这时候就要用到 if-else 语句。另外,如果有多个条件需要判断(比如分数不同等级),那就需要 else if 或者 switch 语句。这些都是分支结构的进阶知识,等你熟练掌握 if 后,可以去挑战它们哦!

if 语句是程序做决策的“小管家”,学会它,你的程序就能变得更聪明!

例题精讲

1单选题

在C++中,if语句后面的条件表达式必须用哪个符号括起来?

A方括号 []
B花括号 {}
C圆括号 ()
D尖括号 <>
2判断题

在C++中,if (a = 5) 这样的写法是合法的,并且会将a赋值为5,然后判断条件为真。

3填空题
以下代码判断变量x是否大于0,如果大于0则输出"正数"。请填写空格处的内容使程序完整。

int x = 5;
if (___)
{
    cout << "正数" << endl;
}
4单选题

执行以下代码后,输出是什么? int a = 3; int b = 2; if (a > b) cout << a; else cout << b;

A3
B2
C32
D无输出
5填空题
以下代码判断一个整数是否为偶数,如果是则输出"偶数"。请填写条件表达式。

int num = 7;
if (___)
{
    cout << "偶数" << endl;
}