int k = 4 ,n;for(n = 0 ; n // n = 0 ; n % 2 求余 == 0 也就是第一次执行 break 就退出了 // 在循环内 n = 0 ; 但是上面 n++ 已经执行了,再次调用就是 n = 1 了 if(n % 2 == 0) break; // 上面已经退出,所以 k-- 不会执行 k--;}printf 结果就是 n = 1, k = 4 , 结果是正确的
因为n初值为0,进入循环if(n%2==0)成立直接就break了,所以n和k的值都保持初值不变,分别为0和4。