C++ if 语句基础
简单38程序也会做判断——认识 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 时,两个条件都成立,屏幕上会显示两行话:“恭喜,你及格了!”和“太棒了,成绩优秀!”。
三、新手容易踩的坑
-
条件里用了单个等号
=
这是最常见的错误!=是赋值,==才是判断相等。
❌ 错误写法:if (a = 5)← 这会先把 5 赋给 a,然后判断 a 是不是非零(永远是 5,非零,所以条件永远为真)。
✅ 正确写法:if (a == 5) -
忘记写花括号
如果 if 后面只跟一条语句,可以省略花括号,但新手最好每次都写上花括号,以免后面加语句时忘记加括号,导致意料之外的结果。
❌ 错误写法:if (age >= 18) cout << "成年了"; cout << "这句永远会执行"; // 注意:这条语句不在if里!✅ 正确写法:
if (age >= 18) { cout << "成年了"; cout << "这条也在if里"; } -
在 if 条件后面加分号
❌ 错误写法:if (age >= 18);← 分号让 if 语句结束,花括号里的代码就不受控制了。
✅ 正确写法:不要加分号,直接跟花括号。 -
比较时写反了
比如判断是否小于 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
这是一个负数
判断完毕!
五、小练习
- 写一个程序,输入你的年龄,如果年龄大于等于 18,就输出“你已经成年了”。试试看吧!
- 写一个程序,输入一个整数,如果它能被 2 整除(即
num % 2 == 0),就输出“偶数”。(提示:取余运算符%可以得到除法余数)
记住:if 语句就像程序里的“小红绿灯”——条件为真就绿灯通过,为假就红灯跳过。学会它,你的程序就能自己“做决定”啦!
六、接下来学什么?
- if-else 语句:让程序在条件为真和假时分别执行不同的代码,比如“如果下雨就带伞,否则就不带”。
- if-else if-else 链:处理多个条件,比如根据分数给出 A、B、C、D 等级。
- 逻辑运算符(&&、||、!):把多个条件组合起来,比如“年龄大于 18 并且有驾照”。
掌握了 if 语句,你就打开了选择结构的大门,加油!
例题精讲
在C++中,以下哪个是if语句的正确写法?
在C++中,if语句的条件表达式的值可以是任意整数,非零表示真,零表示假。
以下程序判断输入的整数是否为正数,请补全代码。
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num;
if (___)
cout << "正数" << endl;
return 0;
}int a = 5, b = 10; 执行 if (a = b) 后,会发生什么?
if语句后面如果只有一行代码,可以不使用花括号。