请C语言高手帮忙分析一下这个循环,为什么我算出来的n=1,k=4,详细点,谢谢。

2025-03-01 21:59:06
推荐回答(2个)
回答1:

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 , 结果是正确的

回答2:

因为n初值为0,进入循环if(n%2==0)成立直接就break了,所以n和k的值都保持初值不变,分别为0和4。