当前位置:编程学习 > C/C++ >>

在C语言中,下程序中怎样理解continue语句?

for(i=8;i>0;i--)

{if(i%3){printf("%d",c);continue;}

}

答案:continue会忽略该句后面的语句而开始下一次循环,它和break语句的功能不一样.

例如://求1~100之间所有的偶数相加之和.

#include <stdio.h>

main()

{

  int i,a,b,sum;

sum=0;//初始化

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

{

  if(i%2) continue;//这里的continue语句会跳过后面的语句进行下一次循环,而break语句则是退出循环

 sum+=i;

}

printf("%d\n",sum);

return 0;

}

但是break语句不是退出里面一层循环.不是退出整个循环程序.

例如:#include  <stdio.h>

main()

{

 int  i,j,a[10][10],sum=0;

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

{

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

 {

  scanf("%d",&a[i][j]);

}

}

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

{

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

 {

  if(a[i][j]%2) break

 sum+=a[i][j];

}

};//这里如果用了break和continue之后,该程序的功能就完全不一样了,用了break之后就不是求出二维数组中所有偶数的和.而用continue是求出二维数组中所有偶数的和.但是用break是退出这个循环

for(j=0;j<10;j++) 不是退出整个循环.

printf("%d\n",sum);

return 0;

 }

谢谢!!!如果还不懂你就在网上找取相关资料加深你的理解..

结束本次循环

比如你这个程序是满足i%3输出c然后跳出这次循环执行下一次循环

但是从你的这个代码来看,你的continue可以算是没作用的!

continue会忽略该句后面的语句而开始下一次循环.

这个例子中continue后面加上其他语句才有效果.

是继续执行的意思。

你的例子不太好,continue没使上劲。

比如:

for(i=8;i>0;i--){

语句a;

if(i%3){

continue;

}

语句b;

}

这个例子假设执行到i=3,不管是不是被3整除,都要执行语句a,然后如果被三整除了,就执行语句b,如果不被整除则先执行语句a,然后遇到continue语句,i=3时的循环结束,直接i--,i=2,则此次先运行a,然后b。

也就是说遇到continue,则跳出本次循环,直接回到i--,而并不是这个for循环全结束。

for循环全结束的是break,遇到break就是跳出整个for循环体。

结束本次循环,直接进入下一次循环

跟break语句不同的是,break语句是直接跳出本‘层’循环

上一个:C语言中算术运算符和赋值运算符哪个优先级高?
下一个:C语言,用什么工具啊,初学者用的,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,