#include <stdio.h>
int main()
{
int a=7, i;
for (i=1; i<=3; i++)
{
if(a>14) break;
if (a%2)
{
a+=3;
continue;
}
a = a+4;
printf(" %d,%d,", i,a);
}
printf(" %d,%d" , i,a);}
a%2表示a除以2取余,余数为1表示true,为0表示false
余数为1时执行a+=3,然后跳过当前循环,执行下一次循环,
流程图中就是直接返回指向for循环那里继续执行for循环就可以了
a%2等价于a%2==1
这就涉及到int型和bool型的隐式转换
0对应false,非0对应true
if (a%2)
a为偶数时,a%2为0,判断为假,不执行if里的语句
a为奇数时,a%2为1,判断为真,执行if里的语句
if
中非0
,是true
,等于0
是false
如果a%2
结果非0
,那么执行if
中的语句,即a+=3;continue;
这个a%2是判断奇偶数的意思,可能是你写错了吧。a%2==0判断偶数,a%2==1判断奇数。
a%2是用a对2取余,返回值是一个int类型值
if条件判断里面的应该是一个bool类型的表达式,所以写法应该是
if (a % 2 == 0)
否则会报编译错误