while循环中的continue语句-?

#include<stdio.h>intmain(){inti,n;i=1;while(i<=10){if(i%3==0)continue;printf("%d",i);... #include<stdio.h>
intmain()
{
inti,n;
i=1;
while(i<=10)
{
if(i%3==0)continue;
printf("%d",i);
i++;
}
return0;
}
为什么是1和2啊输出的,哪位大佬帮帮忙
展开
 我来答
周大个子79
2020-04-13 · TA获得超过147个赞
知道小有建树答主
回答量:188
采纳率:100%
帮助的人:34万
展开全部
1和2输出后就是i=3,就一直continue,走不到i++,就死循环了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Yuqi_Tan

2020-04-13 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3615万
展开全部
首先要了解continue这个关键词在程序中的含义:
在循环语句的结构中,while(或for)语句后面花括号内的语句组成“循环体”。一般来讲,每循环一次,循环体的所有语句按照先后顺序全部执行一遍。
如果循环体中含有continue语句,一旦某一次循环时,程序执行到了continue,本次循环就不会执行后面的所有语句,而回到while或for那一句进行下一次循环。
本例的循环体中,含有一个continue语句。运行i=1、i=2时,因为if语句的条件不成立,不会执行continue,程序会往下运行,即分别打印1和2,并且i加上1(自增)。但是,当第三次循环时,i=3,if条件成立,执行continue,就不会打印3,也不会i自增,就回到while语句,此时i仍然=3,又去执行continue,再回到while,……,如此反复,成了死循环。
所以,程序只打印1和2,不会再打印了。
要改变这种现象,可以考虑做以下修改:
①把i=1改成i=0;
②去掉i++整行;
③把while一句改为:while(++i<=10)。
程序就能正确运行了。
有什么问题请留言。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式