c语言中break与continue的用法与区别

如题所述

在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语句块了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-27
for循环条件一塌糊涂。for(初始化表达式;条件表达式;表达式)
初始化一般是类似于 i=10; 这类赋值方式 。
条件表达式必须能判断真假(True or False 0 或1)
类似 a>0; 或a>b; 或 a>0 && b>a 等等
表达式一般是改变循环因子的居多
比如i++; i+=10 ; i/=10;
这类 一般无关循环因子的,最好写在for循环里面。
你这道题是想判断输入的是几位数。给个写法给你:
#include <stdio.h>

main()
{
int a,b;
printf("请输入一个不多于五位的正整数:");
scanf("%d",&a);
while(a)
{
a/=10;
b++;
if(b>5)
{

printf("大于五位了");
break;

}
}
if(b<=5) printf("你输入了一个 %d 位的数",b);
getch();
}
第2个回答  2007-02-10
给你举个例子吧:
.......
sum = 0
for(i = 0;i < 10; ++i) {
if(i == 4)
break;
if(i == 2)
continue;
sum += i;
}
.......
结果为:sum 为 0+1+3=4
循环计算累加和,放在sum中
过程如下:i从0开始循环,每次i++。当i == 2的时候,执行continue,跳过sum += i这句,继续循环,也就是说,2并没有加到sum中去。循环继续,i变成3,执行sum+=i。然后发现i == 4了,于是执行break,跳出for循环,也就是说,break之后,i的值固定在4了,循环语句不再被执行了,sum += i这句也就不再被执行了。
break是直接跳出循环体,而continue是跳过循环体中余下的语句(这里为sum += i;)继续执行循环。
除此之外,break还可以用在switch/case中,用来结束条件匹配,道理和在循环中一样
第3个回答  推荐于2017-09-28

1、break是结束循环。 continue是结束本次循环。
循环是有很多次的,break之后不再循环,continue结束本次循环后,再开始下一次的循环。

2、例子:

while(x++ < 10)
{
if(x == 3)
{
break;
}
printf("%d\r\n",x);
}
//结果是输出 1 2 就退出了整个while循环
//但是如果使用continue
while(x++ < 10)
{
if(x == 3)
{
continue;
}
printf("%d\r\n",x);
}
//结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环

第4个回答  2011-06-03
break 表示直接结束当前循环;
continue 表示停止当前的循环,进入下一次循环,循环体并没有结束。
相似回答