
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++也不会执行呀 展开
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++也不会执行呀 展开
4个回答
展开全部
你说得对,确实是这样。前提是if(i%4)为真的时候,才会执行continue;也就是如果i的值不是2的整数倍才会执行第一个continue;下面几个if也一样。
那么当i的值是2的整数倍i%2=0,if(0)条件为假,就不会执行continue;就会执行n2++,然后进行下面if的判断
那么当i的值是2的整数倍i%2=0,if(0)条件为假,就不会执行continue;就会执行n2++,然后进行下面if的判断
展开全部
你的分析有错哦,i%2是求模,只有不能整除时才是非0,这样才能到continue
如果i%2==0 那是不会continue的。因为if判断值为false。
如果i%2==0 那是不会continue的。因为if判断值为false。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2%2等于0;2%4等于2;4%8等于4,if语句只有括号内不为0才执行,if(0)就不执行continue这一句,希望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%是求余数,不是除数,返回的是余数的值!如果余数是0的话继续执行!如果除不尽的话!才继续执行下面的!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询