循环结构
有时,我们需要做一件事很多遍,为了不写过多重复的代码,我们需要循环。
有时,循环的次数不是一个常量,那么我们无法将代码重复多遍,必须使用循环。
for 语句
以下是 for 语句的结构:
执行顺序:

初始化表达式在循环开始前执行一次,用于初始化循环变量;条件表达式在每次循环开始前进行判断,如果为真,则执行循环体;迭代表达式在每次循环体执行完毕后执行,用于更新循环变量。
适用场景
当你明确知道循环需要执行的次数时,使用 for
语句非常合适。例如,遍历数组、输出一定范围内的数字等。
for循环执行流程
- 执行初始化表达式,初始化循环变量。
- 检查条件表达式的值,如果为真,则执行循环体;如果为假,则跳出循环。
- 执行完循环体后,执行迭代表达式,更新循环变量。
- 重复步骤 2 和 3,直到条件表达式的值为假。
经典例题及代码实现
题面:输出从 1 到 10 的所有整数。 输入样例:无 输出样例:
示例代码
总结
for
语句是一种非常方便的循环结构,适合处理已知循环次数的情况。它的优点是代码简洁,结构清晰,便于阅读和维护。但如果循环次数不确定,使用 for
语句可能会比较麻烦。
while 语句
以下是 while 语句的结构:
执行顺序:

条件表达式在每次循环开始前进行判断,如果为真,则执行循环体;如果为假,则跳出循环。
适用场景
当你不知道循环需要执行的具体次数,只知道循环的终止条件时,使用 while
语句比较合适。例如,读取用户输入直到满足某个条件为止。
算法原理详解
- 检查条件表达式的值,如果为真,则执行循环体;如果为假,则跳出循环。
- 执行完循环体后,再次检查条件表达式的值,重复步骤 1,直到条件表达式的值为假。
经典例题及代码实现
题面:计算用户输入的整数的和,直到用户输入 0 为止。 输入样例:
输出样例:
示例代码
总结
while
语句适用于循环次数不确定的情况。它的优点是灵活性高,可以根据不同的条件动态控制循环的执行。但需要注意的是,如果条件表达式一直为真,会导致无限循环,因此要确保在适当的时候使条件表达式为假。
do...while 语句
以下是 do...while 语句的结构:
执行顺序:

与 while 语句的区别在于,do...while 语句是先执行循环体再进行判断的。
循环体至少会执行一次,然后再检查条件表达式的值。如果为真,则继续执行循环体;如果为假,则跳出循环。
适用场景
当你希望循环体至少执行一次,并且根据执行后的结果来决定是否继续循环时,使用 do while
语句比较合适。例如,菜单系统,用户至少会看到一次菜单选项。
dowhile执行流程
- 执行循环体。
- 检查条件表达式的值,如果为真,则继续执行循环体;如果为假,则跳出循环。
- 重复步骤 1 和 2,直到条件表达式的值为假。
经典例题及代码实现
题面:让用户输入一个大于 10 的整数,如果输入的数不大于 10,则提示用户重新输入,直到输入一个大于 10 的整数为止。 输入样例:
输出样例:
示例代码
总结
do while
语句的特点是循环体至少会执行一次。它在需要确保循环体至少执行一次的场景中非常有用。但同样要注意避免无限循环的问题,确保条件表达式最终能变为假。
for、while 和 do-while 的区别
1. 语法结构与执行顺序
循环类型 | 语法结构 | 执行顺序 |
---|---|---|
for | for(初始化; 条件; 更新) { 循环体 } | 先执行初始化,再判断条件,若为真则执行循环体,最后执行更新,重复直至条件为假。 |
while | while(条件) { 循环体 } | 先判断条件,若为真则执行循环体,重复直至条件为假。可能一次都不执行。 |
do-while | do { 循环体 } while(条件); | 先执行一次循环体,再判断条件,若为真则继续执行,重复直至条件为假。至少执行一次。 |
2. 循环条件的位置
- for 和 while 的条件判断在循环体执行前,若初始条件不满足,则循环体不执行。
- do-while 的条件判断在循环体执行后,无论条件是否满足,循环体至少执行一次。
示例:计算 1+2+...+10
(初始值 sum=0
, i=11
)
break 语句
功能介绍
在 C++ 中,break
语句主要用于终止当前所在的循环结构(for
、while
、do-while
)或者 switch
语句。当程序执行到 break
语句时,会立即跳出当前的循环体或者 switch
块,继续执行循环或者 switch
之后的代码。
适用场景
- 提前结束循环:当在循环过程中满足某个特定条件,且后续的循环操作不需要再执行时,可以使用
break
语句提前结束循环。 - 跳出嵌套循环的某一层:在嵌套循环中,可以使用
break
语句跳出当前所在的内层循环。
具体执行方式
当程序执行到 break
语句时,会直接跳过当前循环体中剩余的代码,将控制流转移到循环结束后的下一条语句。如果是嵌套循环,break
语句只会跳出当前所在的那一层循环。
经典例题及代码实现
题面:在一个包含 10 个整数的数组中,查找第一个大于 10 的数,并输出该数的位置。如果没有找到,则输出 -1。 输入样例:
输出样例:
示例代码
总结
break
语句可以帮助我们在满足特定条件时提前结束循环,避免不必要的计算,提高程序的效率。但在使用时需要注意,break
语句只会跳出当前所在的那一层循环,如果需要跳出多层循环,可能需要使用其他技巧,如使用标志变量等。
continue 语句
功能介绍
continue
语句也是用于控制循环结构的执行流程。当程序执行到 continue
语句时,会跳过当前循环体中剩余的代码,直接进入下一次循环的条件判断。也就是说,continue
语句会提前结束当前这一次的循环,开始下一次循环。
适用场景
- 跳过某些不必要的循环操作:当在循环过程中遇到某些特定条件,不需要执行本次循环的剩余操作时,可以使用
continue
语句跳过这些操作,直接进入下一次循环。 - 过滤不符合条件的元素:在遍历数组或者集合时,可以使用
continue
语句过滤掉不符合条件的元素,只对符合条件的元素进行处理。
具体执行方式
当程序执行到 continue
语句时,会忽略当前循环体中 continue
语句之后的所有代码,直接跳转到循环的条件判断部分。如果条件仍然满足,则开始下一次循环;如果条件不满足,则结束循环。
经典例题及代码实现
题面:输出 1 到 10 之间所有的奇数。 输入样例:无 输出样例:
示例代码
总结
continue
语句可以帮助我们在循环中灵活地控制程序的执行流程,跳过不必要的操作,提高程序的效率。但在使用时需要注意,continue
语句只会影响当前所在的那一层循环,不会跳出循环。如果需要跳出循环,应该使用 break
语句。