|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #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);
- }
复制代码
求解
// 第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 了
|
|