c语言问题,int i,n=0 for(i=2;i<5;i++) { do{ if(i%3)continue;n++; }while(!i)\\这里!i是什么意...

c语言问题,int i,n=0
for(i=2;i<5;i++)

do{
if(i%3)continue;n++;
}while(!i)\\这里!i是什么意思??
n++;

printf("%d",n);
那各位do while就变成死循环了呀,,,,,退不出循环啊

//i=2,执行 continue跳出do while循环,执行第8行操作n=1;再执行第二次for循环i=3,if条件不成立,
//执行第6行n++,n=2,再执行第8行操作n=3;i=4,执行 continue跳出do while循环,执行第8行操作n=4;i=5结束for循环。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-02
!i即对i取反,在while()中,如果参数非0则视为1,即真,则继续执行循环体;如果满足i为0时则执行(此时!i=1),其他时候不执行 ;实际运行的时候,由于i一直不为0,则循环体只执行一次,然后立即跳出。
第2个回答  2021-06-17
i=2时,if里为真,continue执行,跳过do while的n++,执行后面的n++,n=1.
i自增1,i=3,if里为假,continue不执行,进行do while的n++,再执行后面的n++,n=3.
i自增1,i=4,if里为真,continue执行,跳过do while的n++,执行后面的n++,n=4.
i为5跳出循环则n最后为4
第3个回答  2012-01-01
!i表示逻辑运算非i,当i不等于0时,!i=0,i=0时,!i=1,是真值
不是死循环
第4个回答  2012-01-01
while(!i)的意思是: 当满足i等于0时,执行循环体。
相似回答