在C语言中,下程序中怎样理解continue语句?
for(i=8;i>0;i--){if(i%3){printf("%d",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语句是直接跳出本‘层’循环