第十一章:C++ continue 语句
在此篇教程中,我们将借助示例程序来了解 continue 语句以及其与循环的工作流程。
在计算机编程中,continue
语句用于跳过循环的当前迭代,程序的控制权进入下一次迭代。
continue
语句的语法是:
continue;
在了解 continue 语句之前,请确保已掌握:
- C++ for 循环:那些年C++ 流程控制|for 循环
- C++ if…else:那些年C++ 流程控制|if, if…else 和嵌套 if…else
- C++ while 循环:那些年C++ 流程控制|do … while循环
C++ continue语句的工作流程
C++ for及while循环中使用continue语句的工作流程图
示例 1:for循环中使用continue
在 for
循环中, continue
跳过当前迭代并且控制流跳转到 update
表达式。
// 打印i值得程序
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; i++) {
// continue的条件
if (i == 3) {
continue;
}
cout << i << endl;
}
return 0;
}
输出:
1 2 4 5
在上面的程序中,使用了 for
循环来打印每次迭代中 i
的值。此处,注意代码:
if (i == 3) {
continue;
}
该段代码意思为:
- 当i等于3时,continue语句跳过当前迭代并开始下一次迭代
- 然后,i变为4,并再次判断条件 condition
- 因此,在接下来的两次迭代中打印
4
和5
。
Note: continue
语句几乎都是与决策语句一起使用。
示例 2:while循环中使用continue
在 while
循环中,continue
跳过当前迭代,程序的控制流跳回到 while
condition
。
// 仅计算50之前的正数的程序
// 如果用户输入负数,
// 从计算中跳过该数字
// 负数 -> 循环终止
// 50以上的数字 -> 跳过迭代
#include <iostream>
using namespace std;
int main() {
int sum = 0;
int number = 0;
while (number >= 0) {
// 累加所有的正数
sum += number;
// 接收用户的输入数字
cout << "Enter a number: ";
cin >> number;
// continue的条件
if (number > 50) {
cout << "该数字大于50且不会被计算." << endl;
number = 0; // number的值再次变为0
continue;
}
}
// 显示sum求和结果
cout << "The sum is " << sum << endl;
return 0;
}
输出:
Enter a number: 12 Enter a number: 0 Enter a number: 2 Enter a number: 30 Enter a number: 50 Enter a number: 56 该数字大于50且不会被计算. Enter a number: 5 Enter a number: -3 The sum is 99
在上面的程序中,请求用户输入一个数字。while
循环用于打印用户输入的正数的总和(只要输入的数字不大于 50
的正数数字求和)
注意 continue
语句的使用:
if (number > 50){
continue;
}
- 当用户输入一个大于
50
的数字时,continue
语句将跳过当前迭代。然后程序的控制流程转到while
循环的condition
。 - 当用户输入一个小于
0
的数字时,循环终止。
Note: continue
语句与 do...while
循环的工作方式相同。
嵌套循环中使用 continue
当 continue
与嵌套循环一起使用时,它会跳过内部循环的当前迭代。例如:
// 在里面使用continue语句
// 嵌套循环
#include <iostream>
using namespace std;
int main() {
int number;
int sum = 0;
// 嵌套循环
// 第一次循环
for (int i = 1; i <= 3; i++) {
// 第二次循环
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue;
}
cout << "i = " << i << ", j = " << j << endl;
}
}
return 0;
}
输出:
i = 1, j = 1 i = 1, j = 3 i = 2, j = 1 i = 2, j = 3 i = 3, j = 1 i = 3, j = 3
在上面的程序中,当continue
语句执行时,它会在内循环中跳过当前的迭代。并且程序的控制移动至内循环的更新表达式上。
因此,j = 2 的值永远不会显示在输出中。
Note: 区别:break 语句完全终止循环。但是,continue
语句仅跳过当前迭代。
程序算法实验室 zhangJA-Lab
转载请注明:XAMPP中文组官网 » 那些年C++ 流程控制continue 语句