您的位置:首页 > 产品设计 > UI/UE

error C2044: illegal continue!break 和continue的用法

2015-07-25 17:27 585 查看
break 和continue都是用来控制循环的流程。

break结束循环,不执行循环中剩余的语句

continue 结束当前的迭代,跳转到循环的顶部,及循环开始的位置,继续执行迭代

1、break

C语言中的break可以用在两个地方:

(1)用在switch中,作用是使程序流程转到switch语句之后的语句去执行。

(2)用在循环中,作用是转到循环语句之后的语句执行。

要注意的是,如果switch语句或循环语句是嵌套的,那break都只能跳出它所在的switch或循环,而不是跳出所有switch或所有循环。

例如:

for(i = 1; i <= 10; i++)

  for(j = 1;  j <= 10;  j++)

     if(i == j)

       break;  

代码中的break在内循环中,它使程序跳出内循环,外循环将继续进行。

2、continue

continue只能用在循环中,作用是跳过本次循环剩下的部分,转去执行下一次循环。对于for循环,只要遇到continue,便转到for后面括号里的第三个表达式。

注意:

continue不能用在单纯的switch语句中,除非switch在循环中或循环在switch中,这种情况下continue是对循环起作用而不是对switch。如果没有循环,单纯的switch中出现continue是一个语法错误。

使用案例:

#include<stdio.h>
int main (void)
{
int i,j,n,x,a[10];
printf("输入数据的个数n:");
scanf("%d",&n);
printf("输入%d个整数:",n);
for(i=0;i<n;i++);
scanf("%d",&a[i]);
printf("输入要插入的整数:");
scanf("%d",&x);
for(i=0;i<n;i++);
{
if(x>a[i]) continue;

j=n-1;
while(j>=i)
{
a[j]=a[j+1];
j++;
}
a[i]=x;
break;
}
if(i==n)a
=x;
for(i=0;i<n+1;i++)
printf("%d",a[i]);
putchar('\n');

return 0;
}


错误案例:

#include <iostream>
using namespace std;
int main(){
char i;
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit) Select One:"<<endl;
cin>>i;

if (i=='A')
{
cout<<"增"<<endl;
continue;
}
else if (i=='D')
{
cout<<"删"<<endl;
continue;
}
else if (i=='S')
{
cout<<"排序"<<endl;
continue;
}
else if (i=='Q')
{
cout<<"退出"<<endl;
continue;
}
else
{
cout<<"无此操作符"<<endl;
break;
}
return 0;
}


最后来一个,大家可以看看哪里出问题了!

#include<stdio.h>

int main(void)

{

char ch ;

while((ch=getchar()) ! = '#')
{
if(ch=='\n')
continue;
printf("Step 1 \n");

if(ch=='c')
continue;
else if (ch=='b')
break;
else if (ch == 'g')
goto laststep;
printf("Step 2 \n");

laststep:printf("Step 3 \n");

}

printf("Done \n");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息