无语无语,为什么ABD不是死循环
20.以下是死循环的程序段是C。
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) dontinue;
D.i=l;while(i--);
A 可以结束 i初始为1 for的判断条件一直成立,if(i++%2==0)continue; 第一把1%2 =1 不成立 此时i等于2,if(i++%3==0)break;不成立,此时i等于3 下一把 i%2 就是 3%2不等于0 此时i等于4 4%3不等于0 此时i等于5 下把 不成立 i等于6 6%3==0 break;结束了
B i可能是个signed int型的 超过32767 就溢出 就边负数了 就break了; 范围是 -32768到32787嘛
C 不管for里头if 成立不成立 for里没有break;就无法结束for
D i是个字符 'l' 按ASCII码算 总会有负数的时候 肯定会结束