根据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 <<"\t" ;
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 << "\t";
}
system("pause");
}
为了与continue比较,下面2个例子将break换成contibue
#include<iostream>
#include<vector>
using namespace std;
void main()
{
for (int i = 0; i < 10; i++)
{
cout << i << "\t";
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 << "\t";
}
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 << "\t" << 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 << "\t" << 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 << "\t" << j << endl;
}
cout << endl;
}
system("pause");
}
在j=3的情况下跳出,其他情况则继续执行