问题描述:
分析下面的代码和结果回答下面的问题。在C++中,continue的作用是什么呢?使用时需要注意什么事项呢?中断所在循环的当次执行,直接进入下一次。continue,在for和while循环中作用一致。在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用。
代码:
// Created by 黑马程序员.
#include "iostream"
using namespace std;
// continue 跳过本次循环,进入循环下一次的流程
// break 直接停止所在循环的执行
int main()
{
// 通过for循环输出1到20之间的奇数
// for (int i = 1; i <= 20; i++)
// {
// if (i % 2 == 0)
// {
// continue; // 跳过本次循环,进入下一次
// }
// cout << i << endl;
// }
for (int num = 1; num <= 5; num++)
{
int i = 1;
while (i <= 5)
{
if ( i % 2 == 0)
{
i++;
continue;
}
cout << i << endl;
i++;
}
}
// 通过for循环输出1到20的数字
// for (int i = 1; true; i++)
// {
// cout << i << endl;
// if (i == 20)
// {
// break;
// }
// }
return 0;
}
结果
D:\CLion_code\cmake-build-debug\CLion_code.exe
1
3
5
1
3
5
1
3
5
1
3
5
1
3
5
Process finished with exit code 0
问题解答:
C++中的continue
关键字
在C++中,continue
关键字用于中断当前循环的本次执行,直接进入下一次循环。它在for
和while
循环中作用一致。
continue
的使用注意事项
-
仅影响当前循环:
continue
只会跳过当前循环的剩余部分,并立即开始下一次循环的执行。在嵌套循环中,continue
只作用于它所在的那一层循环,而不会影响外层循环。 -
注意变量更新:在
for
循环中,continue
会跳过当前循环剩余部分,并且执行循环因子的更新操作。对于while
循环和do-while
循环,确保在continue
之前的代码中更新循环控制变量,否则可能导致无限循环。
代码分析
#include "iostream"
using namespace std;
int main()
{
// 在外层for循环中执行5次内部while循环
for (int num = 1; num <= 5; num++)
{
int i = 1;
while (i <= 5)
{
if ( i % 2 == 0)
{
i++; // 更新 i,避免无限循环
continue; // 跳过本次循环,进入下一次
}
cout << i << endl; // 输出奇数
i++;
}
}
return 0;
}
运行结果分析
输出结果为:
1
3
5
1
3
5
1
3
5
1
3
5
1
3
5
结果说明
-
外层for循环:
num
从1到5变化,控制while循环执行五次。每次while循环的输出与num
无关,因此每次循环的输出是相同的。 -
内层while循环:
i
初始化为1。- 当
i
为2或4时,continue
跳过了输出语句(cout << i << endl;
)并直接进入下一次循环。 - 当
i
为1、3、5时,输出了这些数字。 - 当
i
超过5时,内层while循环结束。
-
结果重复:由于外层for循环执行五次,而每次内层while循环的输出都是“1, 3, 5”,因此整个程序输出了五次“1, 3, 5”。
总结
continue
在C++中用于跳过循环中的某次执行,并立即开始下一次循环。- 在使用
continue
时,特别是在while
循环中,需要小心确保循环控制变量的正确更新,以避免出现无限循环。