C++ 程序流程控制详解:选择与循环结构实战

山海之间
山海之间
发布时间:2026-10-16 | 3人浏览过
原创

C++ 程序的执行并非总是线性的,而是通过特定的流程结构来组织逻辑。掌握程序流程结构是编写任何复杂算法的基础,它决定了代码在不同条件下的执行路径与重复次数。本文将重点讲解 C++ 中的两大核心流程:选择结构(决定何时做)和循环结构(决定重复做),并配合典型代码示例进行剖析。

1. 选择结构

选择结构用于根据条件的真假来决定执行哪一段代码块。在 C++ 中,主要包括单行/多行 if 语句、嵌套 if、三目运算符以及 switch 开关语句。

第1步:使用 if 语句进行条件判断

目的: 实现基础的二选一或多路分枝逻辑。
入口: 标准输入输出库 <iostream>。
动作: 通过 if (条件) 测试布尔表达式。
参数: 括号内必须为整型或浮点型比较表达式。
完成状态: 满足条件时执行大括号内的代码块。

#include<iostream>
using namespace std;
int main() {
	// 用户输入分数,若大于600则判定为考上一本
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;
	
	// 单行 if 判断
	if (score > 600) {
		cout << "恭喜您考上了一本大学";
	}
	return 0;
}

若需处理不满足条件的情况,使用 if...else:

#include<iostream>
using namespace std;
int main() {
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;
	
	// 多路分支:一本、二本、三本或落榜
	if (score > 600)
	{
		cout << "恭喜您考上了一本大学!";
	}
	else if (score > 500)
	{
		cout << "恭喜您考上了二本大学!";
	}
	else if (score > 400)
	{
		cout << "恭喜您考上了三本大学!";
	}
	else
	{
		cout << "未考上本科";
	}
	return 0;
}

第2步:使用嵌套 if 处理多重逻辑

目的: 解决需要层层筛选的复杂判断问题。
入口: 逻辑运算符 &&、|| 或缩进的代码块。
动作: 将另一个 if 语句置于前一个 if 的分支内部。
完成状态: 能够处理多维度(如闰年判断、最大值查找)的逻辑组合。

案例:闰年判断
闰年的定义要求:能被 4 整除且不能被 100 整除;或者能被 400 整除。

#include<iostream>
using namespace std;
int main() {
	int year;
	cin >> year;
	// 逻辑运算符优先级:&& 高于 ||
	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) 
	{
		cout << "闰年" << endl;
	}
	else
	{
		cout << "不是闰年" << endl;
	}
	return 0;
}

第3步:使用三目运算符简化简短判断

目的: 用一行代码替代简单的 if...else 赋值操作。
语法: 表达式1 ? 表达式2 : 表达式3。
说明: 若表达式1为真,返回表达式2的结果;否则返回表达式3的结果。
特性: C++ 中三目运算符返回的是变量本身,支持链式赋值。

#include<iostream>
using namespace std;
int main() {
	int a = 10, b = 0, c;
	// 找出较大值赋给 c
	c = (a > b ? a : b);
	cout << "Max=" << c << endl;
	
	// C++ 特性:可直接对结果赋值
	(a > b ? a : b) = 100;
	cout << "A=" << a << endl;
	return 0;
}

第4步:使用 switch 处理离散值匹配

目的: 当判断条件是多个固定的整数或字符值时使用,比多级 if 更清晰高效。
限制: 仅支持整型或字符型,不支持区间判断(如 80-90 分段)。
注意: case 标签后若无 break,程序将继续执行下一个 case 的代码(穿透现象)。

#include<iostream>
using namespace std;
int main() {
	int score;
	cout << "请给电影评分(0-10):" << endl;
	cin >> score;
	
	switch (score) {
	case 10:
	case 9:
		cout << "您认为是经典电影" << endl;
		break;
	case 8:
	case 7:
		cout << "您认为是电影非常好" << endl;
		break;
	default:
		cout << "一般或较差" << endl;
	}
	return 0;
}

2. 循环结构

循环结构用于让代码块重复执行。C++ 提供了 while、do...while 和 for 三种主要循环方式,并提供了跳出或终止循环的控制指令。

第1步:使用 while 循环执行已知次数的迭代

目的: 先判断条件,若满足则进入循环体。
入口: while (条件)。
风险: 务必在循环体内修改计数器,否则可能导致死循环。
案例:猜数字游戏
系统生成随机数,玩家持续猜测直到猜中。

#include<iostream>
#include<ctime>
using namespace std;
int main() {
	// 添加随机数种子
	srand((unsigned int)time(NULL));
	int num = rand() % 100 + 1;
	
	int val;
	while (true) { // 无限循环,直到 break
		cin >> val;
		if (val > num)
			cout << "猜测过大!" << endl;
		else if (val < num)
			cout << "猜测过小!" << endl;
		else {
			cout << "猜对啦!" << endl;
			break;	// 退出循环
		}
	}
	return 0;
}

第2步:使用 do...while 确保至少执行一次

目的: 无论条件是否满足,循环体至少执行一次。适用于“先执行后检查”的场景。

#include<iostream>
using namespace std;
int main() {
	int num = 100;
	do {
		int a = num % 10;			// 个位
		int b = num / 10 % 10;		// 十位
		int c = num / 100;			// 百位
		if (num == a*a*a+b*b*b+c*c*c)
			cout << num << " 是水仙花数" << endl;
		num++;
	} while (num < 1000);
	return 0;
}

第3步:使用 for 循环处理结构化计数

目的: 最适合处理初始化、条件判断和更新都在同一行声明的循环。

#include<iostream>
using namespace std;
int main() {
	// 1~100 敲桌子游戏:逢7或含7敲击
	for (int i = 1; i <= 100; i++) {
		if (i%7==0 || i%10==7 || i/10%10==7) {
			cout << "敲桌子!" << endl;
		}
		else {
			cout << i << endl;
		}
	}
	return 0;
}

3. 循环控制与嵌套

第1步:精准控制循环流向

  • break: 直接终止整个循环,跳出到循环体外。
  • continue: 跳过本次循环剩余的代码,进入下一次迭代的条件判断。
  • goto: 跳转到指定标签位置。虽功能强大但易导致代码混乱,现代编程中通常不推荐使用,除非在极特殊的底层操作中。

第2步:使用循环嵌套解决多维打印

目的: 利用外层循环控制行数,内层循环控制每行的内容(如空格、星号)。

案例:打印三角形

#include<iostream>
using namespace std;
int main() {
	for (int i = 1; i <= 5; i++) {			// 外层控制行数
		// 内层控制空格
		for (int j = 1; j <= 5 - i; j++)
			cout << " ";
		// 内层控制星号数量
		for (int k = 1; k <= 2 * i - 1; k++)
			cout << "*";
		cout << endl;
	}
	return 0;
}

第3步:二维矩阵逻辑应用

在打印完整的矩形星图或乘法口诀表时,通常需要两个独立的内层循环或一个联合遍历。乘法口诀表的打印正是利用了 j <= i 的条件截断,形成了独特的梯形结构。

总结

C++ 的流程控制是构建软件逻辑骨架的关键。选择结构帮助你分流业务逻辑,循环结构处理重复性计算任务。在实际开发中,合理搭配 if/switch 和 for/while,并配合 break 与 continue,能显著提升代码的执行效率与可读性。以上就是 C++ 程序流程结构的详细内容,更多关于 C++ 基础入门的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表