以下为死循环的程序段为

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:24:52
a.for(i=1;;){if(++i%2==0)continue;if(++i%3==0)break;}
b.i=32767;do{if(i<0)break;}while(++i);
c.for(i=1;;)if(++i<10)continue;
d.i=1;while(i--);
答案为C。希望哪位高手解释下,要具体,其他3个选项如何循环

a. 如果++i被2整队,则进入下一轮循环,此时i值已经增加了1.当++i=3时,循环退出,即终止。

b. i为整型变量,当超过该变量所能存放的最大值时,再执行++i,,则i变为最小的那个负数值。因而小于0,退出循环。

d. i=1,再循环时,i--表达式值为1,过后,i变为0;进入第二轮循环时,i-- 表达式值为0,退出循环。

对于a,来说
当++i被2整除的时候,输出i的值
当++i被3整除的时候,输出i的值

对于b,来说
当i<0为假时,中断继续循环
而++i 每次i的值都不变,无限循环

对于d,来说
while(i--)意思是i--为0时退出循环
所以只循环一次

而c,
++i<10 为真,继续执行,而i值不变
一直输出11111111111111....变成死循环咯