c语言break能跳出多层循环吗(C++中break、continue、goto、return在循环中的用法)
100次浏览
发布时间:2024-08-15 13:48:36
C++中,break、continue、goto、return语句都可以应用在 while、for 循环语句中,用于控制循环语句中的流程。
比如下面这段代码:
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 2) {
cout << "i: " << i << endl;
for (int j = 0; j < 2; ++j) {
cout << " j: " << j << endl;
}
i++;
}
}
运行结果为:
1、beak 的用法
break 用于多层嵌套的 while、for 循环语句时,可以跳出最接近break的循环语句。
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 2) {
cout << "i: " << i << endl;
for (int j = 0; j < 2; ++j) {
if (j > 0) {
break;
}
cout << " j: " << j << endl;
}
i++;
}
}
运行结果为:
此外,break还用于switch语句中的case,以跳出当前switch语句。
2、continue 的用法
continue 用于多层嵌套的 while、for 循环语句时,用来忽略循环语句块内位于它后面的代码而继续开始一次新的循环。
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 2) {
cout << "i: " << i << endl;
for (int j = 0; j < 2; ++j) {
if (j == 0) {
continue;
}
cout << " j: " << j << endl;
}
i++;
}
}
运行结果为:
3、goto 的用法
goto语句用于将控制转移到由标签标记的语句。
当多层 while、for 循环语句嵌套时, break语句只应用于最里层的语句,如果要穿越多个嵌套层,可以使用 goto语句。
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 2) {
cout << "i: " << i << endl;
for (int j = 0; j < 2; ++j) {
if (j == 0) {
goto hello;
}
cout << " j: " << j << endl;
}
i++;
}
hello: cout << "hello world!" << endl;
}
运行结果为:
goto 语句是一种无条件流程跳转语句,对于有多层嵌套的 while、for 循环语句,可以直接跳到最外层,但一般都不建议使用goto语句,因为它使得程序的控制流难以跟踪,使程序难以理解和修改。
4、return 的用法
return 可以直接退出函数,把控制返回函数的调用者。
如果函数没有返回类型,可以直接return,否则,return语句必须返回这个函数类型的值。
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (i < 2) {
cout << "i: " << i << endl;
for (int j = 0; j < 2; ++j) {
if (j == 0) {
return 0;
}
cout << " j: " << j << endl;
}
i++;
}
}
运行结果为: