C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【GESP】C++一级考试大纲知识点梳理(考点12), (5) 循环结构
如果不使用循环,计算机的强大计算能力就无法体现。循环 (Loop) 是编程中最常用的结构之一,它让我们可以用几行代码完成成千上万次的重复计算。本篇对应大纲第 12 条考点。
(12)掌握循环结构程序的编写,掌握 for、while、do-while 循环语句的使用以及 continue 语句和 break 语句在循环中的应用。 {: .prompt-info}
一级考点系列:
一、三种循环语句
对应考点:(12)掌握循环结构程序的编写,掌握 for、while、do-while 循环语句的使用。
C++ 提供了三种循环:for、while 和 do-while。一级考试要求全部掌握。
1.1 for 循环
最常用、结构最紧凑的循环,适合已知循环次数的情况。
// 语法结构
for (初始化; 条件判断; 变量更新) {
// 循环体:需要重复执行的代码
}
// 示例:输出 1 到 5
for (int i = 1; i <= 5; i++) {
cout << i << " ";
}
// 输出:1 2 3 4 5
1.2 while 循环
适合循环次数未知,只知道循环条件的情况。
// 语法结构
while (条件) {
// 循环体
// 注意:一定要在内部改变条件,否则会变成“死循环”!
}
// 示例:输出 1 到 5
int i = 1;
while (i <= 5) {
cout << i << " ";
i++; // 千万别忘了这一步
}
1.3 do-while 循环
比较少用。特点是先执行一次循环体,再判断条件。也就是说,无论条件是否成立,循环体至少会执行一次。
int i = 6;
do {
cout << i << endl;
i++;
} while (i <= 5); // 注意这里有个分号
// 输出:6 (虽然 6<=5 不成立,但还是输出了一次)
二、循环控制语句
对应考点:(12)掌握 continue 语句和 break 语句在循环中的应用。
有时候我们需要在循环过程中强行退出或跳过某一次循环,这就需要用到 break 和 continue。
2.1 break (跳出)
作用:立即终止整个循环,跳出循环体,执行循环后面的代码。 场景:找到了想要的结果,不需要再找了。
// 寻找第一个能被 7 整除的数(从 1 开始)
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) {
cout << "找到了:" << i << endl;
break; // 找到了就跑,不用再往后试了
}
}
2.2 continue (继续)
作用:立即结束本次循环(跳过 continue 后面尚未执行的代码),直接进入下一次循环条件的判断。
场景:当前的这个数不符合要求,直接看下一个。
// 输出 1 到 5 中,除了 3 以外的数
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 遇到 3 就跳过本次循环,不执行下面的 cout
}
cout << i << " ";
}
// 输出:1 2 4 5
三、经典算法案例:累加求和
这是循环最基础的应用:计算 的和。
#include <iostream>
using namespace std;
int main() {
int n, sum = 0; // sum 必须初始化为 0!
cin >> n;
for (int i = 1; i <= n; i++) {
sum = sum + i; // 把 i 累加到盒子 sum 里
}
cout << sum << endl;
return 0;
}
四、考试总结
- 死循环:写
while循环时,时刻警惕是否有一个“出口”,或者循环变量是否在更新,否则程序会卡死(Time Limit Exceeded)。 - 边界问题:
i <= n还是i < n?这是通过for循环时的常见错误,需要根据题目要求仔细判定。 - 变量初始化:涉及累加(求和)、累乘(求积)时,变量
sum一定要初始化(求和为0,求积为1)。
一级考试对循环的考察通常比较基础,不会涉及太复杂的嵌套循环(那是二级的内容),重点在于理解循环的执行流程。
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
猜你想读 · 相关文章推荐
【GESP】C++一级考试大纲知识点梳理(考点2,4,10,13), (2) 开发环境与程序基础
GESP C++一级考试大纲的第2、4、10、13条考点主要涉及开发环境的使用、程序的基本结构以及一些最基础的概念。这些是编写任何 C++ 程序的前提。 (2)熟悉集成开发环境使用(例如 Dev C++):创建文件、编辑文件、保存文件、编译、解释、调试。 (4)掌握标识符、关键字、常量、变量、表达式的概念。 (10)掌...
【GESP】C++一级考试大纲知识点梳理(考点3,5,6,9), (3) 变量、数据类型与输入输出
编程的核心在于处理数据。本篇涵盖了 GESP 一级考试中最核心的计算部分:如何定义数据、输入输出数据以及对数据进行算术运算。涉及大纲考点 3、5、6、9。 (3)掌握基础的 cin 语句、scanf 语句、cout 语句、printf 语句,赋值语句等。 (5)掌握常量与变量的命名、定义、作用、初始化与赋值以及变量的自...
【GESP】C++一级考试大纲知识点梳理(考点7,8,11), (4) 逻辑运算与分支结构
程序如果不只是“流水账”,就需要具备做判断的能力。GSEP 一级考试的核心难点往往就出现在条件判断和下一篇的循环上。本篇涉及考点 7、8、11。 (7)掌握逻辑运算与(&&)、或(||)、非(!)。 (8)掌握关系运算:大于、大于等于、小于、小于等于、等于、不等于。 (11)掌握分支结构程序的编写,掌握 if 语句、i...
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com