c语言中的break与continue语句
在c语言中,break语句可以放在for循环、while循环及do……while等循环中,也可放在switch语句中。其主要功能是:①break语句可以使流程跳出switch 结构,继续执行switch语句下面的一个语句,②break语句可以从循环体内跳出循环,结束所在的当层循环,继续执行循环下面的语句。
(1)、brreak语句在switch语句中的例子。
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
switch(a)
{
case 1:printf("1");
case 2:printf("2");
case 3:printf("3");
default:printf("4");while语句简单例子
}
}
以上程序,如果没有break语句,从键盘输入数字1时,输出结果是:1 2 3 4,从switch语句符合条件的子语句开始到结束,所有语句都执行一遍,后继续执行switch下面的语句。
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
switch(a)
{
case 1:printf("1");break;
case 2:printf("2"); break;
case 3:printf("3"); break;
default:printf("4");
}
}
以上程序,switch的子语句后加上break语句后,从键盘输入数字1时,输出结果是:1,跳出程序,然后switch语句就结束了。如果从从键盘输入数字2时,输出结果是:2,跳出程序,然后switch语句也就结束了。如果输入没有符合条件
的数字时,就执行default语句,输出结果4。
(2)、brreak语句在for循环语句中的例子。
#include<stdio.h>
void main()
{
int i,s=0;
for(i=1;i<=10;i++)
{
s=s+i;
if(i==5)
break;
}
printf("%d",s);
}
以上程序如果没有break语句,该for循环将执行10次叠加。然而,在第5次循环时,即i等于5时,执行if语句中的break语句时,将会使for循环终止。然后,接着执行for循环后面的语句,即本是计算1+……10的和,由于break语句中断循环,只计算的了1+……5的和。
在c语言中,continue语句主要放在for循环、while循环及do……while等循环语句中。其主要功能是:①当执行到continue语句时跳出本次循环结构,返回到循环体开始的位置继续执行下一次循环,②continue跳出本次循环时将不再执行本次循环下面的所有语句,即结束的是所在的当层循环。
(1)、continue语句在for循环语句中的例子。
#include<stdio.h>
void main()
{
int i,s=0;
for(i=1;i<=10;i++)
{
if(i%2==0)
s=s+i;
if(i%2==1)
continue;
}
printf("%d",s);
}
以上程序for语句,如果没有continue语句,计算1+……10的和,但是出现了continue语句,当i为奇数
时,就会结束本次循环,进行本层循环的下一次循环,故本程序就是计算1+……10之内所有偶数的和。
(2)、continue语句在while循环语句中的例子。
#include<stdio.h>
void main()
{
int i=1,s=0;
while(i<=10)
{
if(i%2==0)
s=s+i;
if(i%2==1)
continue;
i=i+1;
}
printf("%d",s);
}
以上程序while语句,具体是计算1+……10的和,但是出现了continue语句,当i为奇数时,就会结束本次循环,进行本层循环的下一次循环,但是值得注意的是此while语句中当执行i=1时,就会遇到continue,就会结束本次循环,回到循环的初始位置准备下一次的循环,那么continue后面的i=i+1没有被执行,也就说,结束本次循环后,i的值还是1,再进行循环,就会进入死循环,故上面程序就是死循环。所以对于while循环中出现continue时要注意语句中循环变量增量的位置,这与for循环是有所不同的。
正确的语句应该更改为下面的语句:
把i的初始值赋为0,把循环变量增量放在循环语句的开始位置。
#include<stdio.h>
void main()
{
int i=0,s=0;
while(i<=10)
{
i=i+1;
if(i%2==0)
s=s+i;
if(i%2==1)
continue;
}
printf("%d",s); }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。