C++中break与continue的用法
根据break的用法,是在循环体内,强行结束循环的执行,也就是结束整个循环的过程,不再执行循环的条件是否成立,直接转向循环语句下面的语句。
continue的作用:在循环语句中,跳出本次循环中余下尚未执行的语句,继续执行下一次循环。
其包括两点:
1. break结束一个循环体,即一个for循环。倘若break镶嵌在内循环中,则只结束内部循环体。continue则只停止该次for的一次循环,其他的继续执行
2. 在执行break后,循环体内其他条件不在执行。continue则仍是只停止1次循环,而不会终止整个for循环
下面为单循环与内嵌循环的示例:
(1)单循环
#include<iostream> #include<vector> using namespace std; void main() { for (int i = 0; i < 10; i++) { cout << i <<" " ; if (i == 6) { break; } } system("pause"); }
结果如下:
在循环到i=6时结束,后面的语句不再执行。cout在break之前执行,因此输出6。
而下面cout在break之后,因此无6输出。
#include<iostream> #include<vector> using namespace std; void main() { for (int i = 0; i < 10; i++) { if (i == 6) { break; } cout << i << " "; } system("pause"); }
为了与continue比较,下面2个例子将break换成contibue
#include<iostream> #include<vector> using namespace std; void main() { for (int i = 0; i < 10; i++) { cout << i << " "; if (i == 6) { continue; } } system("pause"); }
由于continue只是跳出单次一次for循环,没有终止for循环,因此将0-9均输出。
#include<iostream> #include<vector> using namespace std; void main() { for (int i = 0; i < 10; i++) { if (i == 6) { continue; } cout << i << " "; } system("pause"); }
在i=6时,直接跳出这一次i=6的循环,但是不影响后面i=7 8 9的循环,但break则直接终止,不循环i=7 8 9。
(2)内嵌循环
#include<iostream> #include<vector> using namespace std; void main() { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { cout << i << " " << j << endl; if (j == 3) { break; } } cout << endl; } system("pause"); }
运行结果如下:
在break下,i=3之后的不再执行。而continue则一直均执行
#include<iostream> #include<vector> using namespace std; void main() { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { cout << i << " " << j << endl; if (j == 3) { continue; } } cout << endl; } system("pause"); }
#include<iostream> #include<vector> using namespace std; void main() { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (j == 3) { continue; } cout << i << " " << j << endl; } cout << endl; } system("pause"); }
在j=3的情况下跳出,其他情况则继续执行