int i;
for(i=1;i<10;i++)
{
if(i%3) i++;
++i;
printf("%d",i);
}
if(i%3)的意思是如果i不是3的倍数,则i++,是3的倍数则不执行i++
当i=1时,if(i%3)成立,所以执行i++和++i后,i=3,第一次printf出来3
二次循环i自动加1,所以i=4,if(i%3)成立,又执行i++和++i,i=6,同理输出6
三次循环和前面一样,总体每次循环i增加三次,所以第三次输出9
第四次由于i加1成为10,不满足i<10条件结束
for (i=1;i<10;i++)
{
if(i%3) continue; //continue跳过这一次循环的后续操作并继续循环
printf("%d",i);
}
当i=1时,i%3等于1;然后会进行i++为2;++i为3;第一个输出结果就是3.以此类推就行
因为i在循环体内一直在增加,如果不是3的倍数,就加三次(多加一次),i=1输出3(后面两个++),i=4输出6(后面两个++),i=7输出9(后面两个++)。