在C语言中,两个跳出循环语句的语句break和continue。初学C,难免会混淆两个语句之间的区别,导致程序某个局部出现逻辑错误。以下是二者的区别:
continue只对直接包含它的循环体有效(也就是for,while, 而switch{}中的不算循环体);
break有效的是直接包含它的for,while,switch块。
比如在不包含switch的代码中出现break或者continue,那么break跳出循环体,而continue跳出本次循环,而对于在循环中嵌套switch语句的代码中,break仅跳出最内层的块,这个块若是switch,就仅跳出switch,而continue即使出现在switch块中,因为continue的作用范围仅针对 for while 之类的循环语句,故不起作用,依旧跳出本次循环,不注意的话也会认为同样是跳出switch语句块了。
基本用法就不多说了,上区别------continue是放弃执行循环体内continue一下语句,直接进行下一次循环,而break是跳出离他最近的循环(即如果有多层循环,跳出他所在的那层循环),这里注意!!!反正就是continue是进行下一次循环(不跳出),而break是直接跳出循环~~~不知道解释的你懂不懂、、、好了给分啊!!!!
break可以用在循环结构和switch结构中,用于中断程序运行,而continue一般只在循环结构中出现,而且一般在一个选择结构中。可以用以下例子来说明二者的区别
for(i=1;i<10;i++)
{
语句组1
if(条件)break;
语句组2
if(条件)continue;
语句组3
}
语句组4
在这个程序中,如果程序运行到break语句,则循环结束,跳转到语句组4运行后续语句。
如果程序运行到continue,则跳过语句组3,直接进行i++,去执行下一次循环。
break是结束循环。
continue是结束本次循环。
循环是有很多次的,break之后不再循环,continue结束本次循环后,再开始下一次的循环。
举个例子吧:
程序(一)
main()
{
int
i,sum=0;
for(i=1;i<=10;i++)
{
if(i%2==0)
continue;
/*如果遇到偶数,则忽略本次循环,接着判断下个数*/
sum+=i;
}
printf("%d\n",sum);
/*输出1-10中奇数和*/
}
程序(二)
main()
{
int
i,sum=0;
for(i=1;i<=10;i++)
{
if(i%2==0)
break;
/*如果遇到偶数,则结束整个循环(预计10次,实际只执行1次)*/
sum+=i;
}
printf("%d\n",sum);
/*输出1,遇到第二个数2就退出整个循环*/
}