C中的continue和break的区别是continue是跳出本次循环 break是跳出整个循环
但是这个题当k=7的时候不是已经break了嘛怎么程序还在继续运行最后结果是s=7???????intmain(intargc,constchar*argv[]){int...
但是这个题当k=7的时候不是已经break了嘛 怎么程序还在继续运行 最后结果是s=7???????
int main(int argc, const char * argv[])
{
int s=0,k;
for (k=7;k>=0;k--)
{
switch(k)
{
case 1:
case 4:
case 7: s++; break;
case 2:
case 3:
case 6: break;
case 0:
case 5: s+=2; break;
}
}
printf("s=%d\n",s);
} 展开
int main(int argc, const char * argv[])
{
int s=0,k;
for (k=7;k>=0;k--)
{
switch(k)
{
case 1:
case 4:
case 7: s++; break;
case 2:
case 3:
case 6: break;
case 0:
case 5: s+=2; break;
}
}
printf("s=%d\n",s);
} 展开
3个回答
展开全部
你的break只跳出了switch,没跳出for。
你可以使用goto语句。
int main(int argc, const char * argv[])
{
int s=0,k;
for (k=7;k>=0;k--)
{
switch(k)
{
case 1:break;
case 4:break;
case 7: s++; goto end;
case 2:break;
case 3:break;
case 6: goto end;
case 0:break;
case 5: s+=2; goto end;
}
}
end:
printf("s=%d\n",s);
}
你可以使用goto语句。
int main(int argc, const char * argv[])
{
int s=0,k;
for (k=7;k>=0;k--)
{
switch(k)
{
case 1:break;
case 4:break;
case 7: s++; goto end;
case 2:break;
case 3:break;
case 6: goto end;
case 0:break;
case 5: s+=2; goto end;
}
}
end:
printf("s=%d\n",s);
}
追问
break 就只是跳出一次循环吗 我把break改成continu刚实验了一下结果也是一样的 那在这个程序中2者不是没区别了嘛 要是有是怎样的呢 求详解 我是C的小白
追答
for 跟 switch 都能被break,是按照嵌套策略的,也就是说由里到外跳出来,你在switch里面break就跳出switch,但for没有被break。所以for是继续执行的。
continue的意思是“放弃本次循环,进入下一次循环”,是不会强制跳出for的。另外,continue对switch来说没有意义,switch本来就只执行一次(你的例子中一个for循环执行一次)。
展开全部
continue是结束当前本次循环继续下次循环
break则是结束当前循环,也就是直接退出这个循环而不在执行。
如:
for(i=1;i<5;i++)
if(i==3)
continue;
这个循环结束后i=6,就算i=3的时候执行了continue,但是不影响循环的整体执行。
for(i=1;i<5;i++)
if(i==3)
break;
这个循环执行到i=3的时候就break了,也就是最后i=3,不会在执行下去。
break则是结束当前循环,也就是直接退出这个循环而不在执行。
如:
for(i=1;i<5;i++)
if(i==3)
continue;
这个循环结束后i=6,就算i=3的时候执行了continue,但是不影响循环的整体执行。
for(i=1;i<5;i++)
if(i==3)
break;
这个循环执行到i=3的时候就break了,也就是最后i=3,不会在执行下去。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询