int i=-5;while(i++){ printf("%d\n",i);}printf("*****************\n");i=-5;while(++i){ printf("%d\n",i);}
时间: 2024-08-17 12:01:20 浏览: 35
这段代码包含两个`while`循环,它们分别执行不同的操作:
1. 第一个循环:
```c
int i = -5;
while (i++) { // 注意这里使用的是自增运算符(i++),所以条件实际上永远为真,除非i被赋值为非负数
printf("%d\n", i);
}
printf("*****************\n");
```
在这个循环中,因为初始`i`为-5,条件`i++`会使`i`递增1,但每次循环内部的`printf`都会打印当前`i`的值,直到`i`变为非负数时,由于条件依然满足,会无限循环下去。
2. 第二个循环:
```c
i = -5;
while (++i) { // 这里使用的是先递增再判断的运算符(++i),所以从-5开始,i每次递增1并进入循环
printf("%d\n", i);
}
```
这个循环与第一个不同,它首先将`i`递增1(即`i = -4`),然后检查`i`是否满足循环条件。当`i`仍小于0时,继续递增并打印值,直到`i`变为非负数。
这两个循环的结果可能是无限的,因为第一个循环可能会导致无限递增,第二个循环虽然不会无限递减,但如果`i`永远不会变成正数,也会持续打印。
阅读全文