问题描述:
分析下面的代码和结果回答下面的问题。在C++中,break的作用是什么呢?使用时需要注意什么事项呢?直接结束所在的循环。break,在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++;
break;
}
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
1
1
1
1
Process finished with exit code 0
问题解答:
C++中的break
关键字
在C++中,break
关键字用于立即终止所在的循环。无论循环的条件是否仍然满足,一旦break
语句被执行,循环将被终止,并且程序控制权会跳转到循环体之后的第一条语句。
break
的使用注意事项
-
仅终止所在的循环:
break
只会终止它所在的那一层循环。如果在嵌套循环中使用break
,它只会跳出当前层的循环,外层循环将继续执行。 -
谨慎使用:在某些情况下,使用
break
可能会使代码的逻辑难以理解,因为它会中断正常的循环流程。因此,使用break
时应确保其逻辑清晰且必要。
代码分析
#include "iostream"
using namespace std;
int main()
{
for (int num = 1; num <= 5; num++)
{
int i = 1;
while (i <= 5)
{
if (i % 2 == 0)
{
i++;
break; // 当 i 为偶数时,终止当前的 while 循环
}
cout << i << endl; // 输出 i
i++;
}
}
return 0;
}
运行结果分析
输出结果为:
1
1
1
1
1
结果说明
-
外层
for
循环:num
从1到5变化,控制while
循环执行五次。每次while
循环的输出与num
无关,因此每次循环的输出都是相同的。 -
内层
while
循环:i
初始化为1。- 当
i
为2时,break
语句被执行,while
循环立即终止,外层的for
循环进入下一次迭代。 - 由于
i
在第一次循环时为1,并且只输出了1,而在i
等于2时就终止了循环,因此每次while
循环只输出了1。
-
循环结果:由于外层
for
循环执行了五次,而每次while
循环的输出都是“1”,因此整个程序输出了五次“1”。
总结
break
在C++中用于立即终止所在的循环。- 在嵌套循环中,
break
只会退出它所在的那一层循环,外层循环不会受到影响。 - 使用
break
时应确保逻辑清晰,以免使代码难以理解。