关于C++循环的一道选择题不明白

来源:百度知道 编辑:UC知道 时间:2024/05/24 21:34:15
是一道选择题,问下面是死循环的程序段是:
B选项是:
int i=32767;
do{
if(i<0) break;
)
while(++i);
C选项是:
for(int i=1;;) if(++i<10) continue;
答案是C,我不明白为什么C是而B不是,请指点下,谢谢!

B:32767=0111111111111111(二进制)
注意其中最高位0代表该数为正,后15位计数。
21767+1=-32768在二进制上表示为:
0111111111111111+0000000000000001=1000000000000000

C:continue指切换到for的下一个语句。不管continue执行不执行,for里面都没有指定循环退出条件,所以该语句的功能就是把i加到10,然后for语句就不停的重复自己~~~啥也不干。。。。。

32767+1等于-32768
int的范围:-32768~32767