循环
#include<stdio.h>int main()
{ int i,b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b-->=0) k++;
}
printf("%d,%d",k,b);
}
求解 说清楚,求解什么? 为什么输出是8 和 -2呢 jackz007 发表于 2020-11-14 20:18
说清楚,求解什么?
为什么输出是8和-2呢 // 第1轮循环
// 执行 for (i = 1;i <= 5;i++) 后
i 1
b -858993460
k 0
// 执行 b = i % 2; 后
i 1
b 1
k 0
// while (b-- >= 0) k++; 后
i 1
b -2
k 2
// 第2轮循环
i 2
b -2
k 3
// 第3轮循环
i 3
b -2
k 5
// 第4轮循环
i 4
b -2
k 6
// 第5轮循环
i 5
b -2
k 8
重点:对于 b-->=0 这个表达式,在while的括号里面,所以是作为一个整体来对待的,他必须把这个整体计算完,才能决定下一步的工作。这个整体的计算就是,先计算 b>= 0 , 比如b = -1时,那么这个结果是 false ,就是 0,然后还必须再计算 b--,那么b就是 -2 了 风过无痕1989 发表于 2020-11-15 12:06
// 第1轮循环
// 执行 for (i = 1;i = 0) k++; 后
i 1
懂了懂了,谢谢!
页:
[1]