C++中,break、continue、goto、return语句都可以应用在 while、for 循环语句中,用于控制循环语句中的流程。
比如下面这段代码:
#include 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 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 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 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 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++; }}
运行结果为: