C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因..

#include<stdio.h>voidmain(){inti,n2=0,n4=0,n8=0;for(i=1;i<=100;i++){if(i%2)continue;/... #include <stdio.h>
void main(){
int i,n2=0,n4=0,n8=0;
for(i=1;i<=100;i++)
{
if(i%2)
continue;/* 转至i++ */
n2++;
if(i%4)
continue;/* 转至i++ */
n4++;
if(i%8)
continue;/* 转至i++ */
n8++;
}
printf("n2=%d,n4=%d,n8=%d\n",n2,n4,n8);
}
continue不是会跳出本次循环吗,那么后面的If(i%4)不就不会执行了吗,n2++也不会执行呀
展开
 我来答
臻苏高18
2013-06-02 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:121
采纳率:100%
帮助的人:152万
展开全部
你说得对,确实是这样。前提是if(i%4)为真的时候,才会执行continue;也就是如果i的值不是2的整数倍才会执行第一个continue;下面几个if也一样。
那么当i的值是2的整数倍i%2=0,if(0)条件为假,就不会执行continue;就会执行n2++,然后进行下面if的判断
wyhbb163
2013-06-02 · TA获得超过1498个赞
知道小有建树答主
回答量:286
采纳率:0%
帮助的人:172万
展开全部
你的分析有错哦,i%2是求模,只有不能整除时才是非0,这样才能到continue
如果i%2==0 那是不会continue的。因为if判断值为false。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luohangsan999
2013-06-02 · TA获得超过227个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:162万
展开全部
2%2等于0;2%4等于2;4%8等于4,if语句只有括号内不为0才执行,if(0)就不执行continue这一句,希望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高文杰ff
2013-06-02 · TA获得超过2044个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:290万
展开全部
%是求余数,不是除数,返回的是余数的值!如果余数是0的话继续执行!如果除不尽的话!才继续执行下面的!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式