我们在学习c语言时候,已经知道在编写循环得时候在循环体之前,比如while for 或者之后使用(do)语句来结束退出点得方法,然后有时候,我们需要在循环中间设置退出点,甚至我们在循环中可能要设置多个循环结束点,break语句可以用在上述得循环中当作结束的语句
学习break语句时候,我们能对其他两个相关的语句:continue 语句和goto 语句
continue会跳过某次迭代的部分内容 ,但不会跳出整个循环goto语句则是从一条语句跳到另一条语句中
break 语句
break 语句不仅可以从switch 跳出来 还可以跳出 for while do 循环中
比如我们编写是否是素数我们编写一个求n的素数一旦发现有约数我们就跳出循环 ,而且不需要继续尝试下去用 if 来判断是否是素数
for(i=2;i++;i<n)
{
for(j=2;j<i;j++)
{if(i%j==0)
break;
}
if(i==j)
{cout<<"该数是素数";}
}
对于退出点在循环体之间而不是循环体之前和之后的情况,break语句特别有用,读入用户输入并且在遇到一些特殊命令时可以终止循环常常属于这种类型
for(;;)
cout<<"输入一个数(0除外)";
cin>>n;
if(n==0)
break;
cout<<"输入的数是"<<n;
当然break在遇到多个循环时 比如嵌套在for while do switch 中只能跳出一个循环例如
for(;;){
switch(...){
...
break;
}
}
break只能从switch中转移出来而不能从for循环中出来
continue 语句
continue 是无法跳出循环的 但由于和break 相似 所以放在这里也不全是随意的 break能够 把程序控制放在循环之后 ,continue 刚好把程序控制在循环内,break和continue 语句的另外一个区别是break 语句会使程序跳出循环而continue则是把程序控制在循环内部 break和continue语句的另外一个区别是break用于switch和其他循环 而 continue 用于循环仅此
下面一个例子来说明continue的简单应用循环读入10个非0的数后循环截止 无论何时读入0都执行continue 语句,控制将跳过 循环体的剩余部分 但人保留在循环体内
n=0;
sum=0;
while(n<10)
{
cin>>i;
if(i==0)
continue;
sum+=i;
n++
}
如果不用continue下面示例如下图
n=0;
sum=0;
while(n<10)
{
cin>>i;
if(i!=0){
sum+=i;
n++;}
}