一、if 语句的概念
if 语句是专门用来实现选择结构的语句。它根据表达式的真假决定程序的执行路径。
二、if 语句的语法形式
基本语法:
if (表达式)
语句1
else
语句2Code language: JavaScript (javascript)
执行顺序:首先计算表达式的值,若表达式的值为 true(非 0),则执行语句 1;否则执行语句 2。
三、语句1 和语句2 的形式
语句 1 和语句 2 不仅可以是一条语句,也可以是用大括号括起来的多条语句(复合语句)。
示例:输出 x 和 y 中的较大值
int x, y;
x = 23;
y = 19;
if (x > y)
cout << x;
else
cout << y;Code language: JavaScript (javascript)
使用复合语句的示例:
int x, y;
x = 23;
y = 190;
if (x > y)
{
// cout << x;
cout << "x比y大,x的值是:" << x;
}
else
{
cout << "x比y小,y的值是:" << y;
}Code language: JavaScript (javascript)
四、省略 else 的情况
当语句 2 为空时,else 可以省略。此时语法形式为:
if (表达式)
语句
示例:
int score = 85;
if (score >= 60)
cout << "及格" << endl;
// 否则什么都不做Code language: JavaScript (javascript)
五、代码示例
以下代码演示了 if 语句的完整用法:
#include <iostream>
using namespace std;
int main()
{
// 示例1:基本if-else,输出较大值
int x = 23, y = 19;
if (x > y)
cout << "较大值是:" << x << endl;
else
cout << "较大值是:" << y << endl;
// 示例2:复合语句
int a = 10, b = 20;
if (a > b)
{
cout << "a > b" << endl;
cout << "a = " << a << endl;
}
else
{
cout << "a <= b" << endl;
cout << "b = " << b << endl;
}
// 示例3:省略else
int score = 85;
if (score >= 60)
cout << "成绩合格" << endl;
// 示例4:判断闰年
cout << "请输入年份:" << endl;
int year;
cin >> year;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
cout << year << "是闰年" << endl;
}
else
{
cout << year << "不是闰年" << endl;
}
// 示例5:单分支if
int num = -5;
if (num < 0)
num = -num; // 取绝对值
cout << "绝对值:" << num << endl;
return 0;
}Code language: PHP (php)
六、注意事项
- if 后面的表达式通常是关系表达式或逻辑表达式,也可以是任意算术表达式。值为非 0 时视为 true,为 0 时视为 false。
- 语句 1 和语句 2 如果有多条语句,必须用大括号 {} 括起来形成复合语句,否则只有第一条语句受 if 或 else 控制。
- else 总是与离它最近的、尚未匹配的 if 配对。
- 在 if 语句后误加分号会导致逻辑错误:
if (a > b); // 空语句,条件判断后什么也不做
cout << "a > b"; // 无论条件如何都会执行Code language: JavaScript (javascript)
- 判断闰年条件:(year % 4 == 0 && year % 100 != 0) || year % 400 == 0。注意逻辑运算符的优先级,&& 高于 ||,括号不能省略。
七、小结
- if 语句根据表达式的真假选择执行不同的代码路径。
- 语法形式:if (表达式) 语句1 else 语句2。
- 语句 1 和语句 2 可以是单条语句或复合语句。
- 当语句 2 为空时,else 可以省略。
- else 与最近的 if 配对。
- 判断闰年:能被 4 整除且不能被 100 整除,或能被 400 整除。
Previous: 预定义的插入符cout和提取符cin
Next: 多重选择结构-嵌套if