#include <stdio.h>
int main( )
{
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3) continue;
n++;
}while(!i);
n++;
}
printf("n=%d\n",n);
return 0;
}
do while是先执行循环体,再判断循环条件,满足条件继续循环。!i 这个条件表达式,i==0时为true,非0时为false(因为c语言非0为true,0为false,!为反过来),i%3 非0时continue,为0时n++。所以while循环在每一轮for循环会执行一次,但只有i==3时没有continue而n++,剩下是for循环3次执行n++结果是n=4
if(i%3) , i % 3 得到的值作为 if (值) 直接判断,当 i % 3 = 1, if(1)为真,执行 continue; 跳出 do{}while(); 循环,i % 3 = 0,if(0)为假,执行 n++; 然后结束do{}while(); 循环。