c语言中,if(i%3)的意思

#include<stdio.h>
void main()
{
int i=0,s=0;
do
{
if(i%3){i++;continue;}
i++;
s+=i;
}
while(i<11);
printf("%d\n",s);

}
答案是22,不理解为什么得出这个结果。

第1个回答  2011-08-19
也就是对3求余,=0就表示是3的倍数
第2个回答  2018-06-17
if(i%3)的意思是if里边如果是真,也就是如果是非零,那就执行if后边的,也就等价于 i%3!=0 就执行if后边的。
首先i=0;
if(0%3),0%3==0,所以等价于if(0),所以不执行后边的,直接执行下边的i++;s+=i;执行完之后i=1,s=1;
然后继续执行if(1%3) ,1%3!=0 ,所以相当于if(1) 所以执行后边的i++;continue,此时i=2;跳过本次循环,
然后继续执行if(2%3) 2%3!=0 所以相当于if(1) 所以执行后边的i++;continue,此时i=3;跳过本次循环,
然后继续执行if(3%3) ,3%3==0 ,所以相当于if(0) 所以不执行后边的,直接执行下边的i++;s+=i;执行完之后i=4,s=1+4=5;
就这么推下去
到最后就是1,4,7,10相加等于22

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网