1. 单向 if 语句

单分支if语句:

语法: if (布尔表达式booleanExpression) { 语句块statement(s); }

示例:

若半径非负,则计算并输出圆的面积:

if (radius >= 0)
{
	area = radius * radius * PI;
	cout << "The area for the circle of" << "radius" << "is" << area;
}

判断i是否是0到10之间的整数:

if ((i>0) && (i<10))
	cout << "i is an integer between 0 and 10";

提示用户输入一个整数,若该数是5的倍数则输出"HiFive",若为偶数则输出"HiEven":

#include <iostream>
using namespace std;

int main()
{
	// Prompt the user to enter an integer (提示用户输入整数)
	int number;
	cout << "Enter an integer: ";
	cin >> number;
	if (number % 5 == 0)
		cout << "HiFive" << endl;
	if (number % 2 == 0)
		cout << "HiEven" << endl;
	return 0;
}

<aside> ⚠️

注意:常见错误 - if语句后多加分号

这是高频逻辑错误,虽不会导致编译或运行错误,但会改变程序逻辑。该错误在"换行写语句块"的编码风格更易出现,需特别注意。

错误写法:

if (radius >= 0); // 分号导致if语句体为空
{
// 无论radius是否非负,都会执行
area = radius * radius * PI;
cout << "The area " << " is " << area;
}

正确写法(等价):

if (radius >= 0)
{
area = radius * radius * PI;
cout << "The area " << " is " << area;
}

</aside>


2. 双向 if-else 语句

if-else 双分支语句:

语法:

if (布尔表达式)
{
	真分支语句块; // 布尔表达式为true时执行
}
else
{
	假分支语句块; // 布尔表达式为false时执行
}

<aside> 💡

程序会根据布尔表达式的结果,二选一执行真分支或假分支,不会同时执行,也不会都不执行。

</aside>


3. 嵌套 if 与多分支 if-else 语句

(1)嵌套 if