求解!运行结果是多少?do while 之间的语句怎么看?👀👀

#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(); 循环。