if(i%3)是当i模3的余数不为0时,即i不能被3整除时。
while(!i)是当i为0时,继续循环。C语言中用0表示逻辑假,用非0值表示逻辑真。!i要为逻辑真的话,i必然是逻辑假,当然就等价于i为0。
main()
{
int i,n=0;
for(i=2;i<5;i++)
{
do{
if(i%3)
continue;
n++;
}while(!i);
n++;
}
printf("\n%d",n);
}
把代码整理一下不就很容易看出来了吗?