看你怎么定义i了,如果是int i,那么i的范围是-32766到32767,那么这就不是死循环了,因为i++后i=32767加了1,因为已经到了最大值,所以i有回到了最小值,从新来过,那么i=-32766,那么就可以break了
如果定义 long i;那么就是死循环了
我想,当然是死循环了.
一个循环,你需要使这个循环趋向于结束的语句.对于你这部分内容.++i,i一直在增大,永远也不可能达到i<0的情况.所以这个循环一直执行,也就是死了.如果变成--i;就有可能执行break;了
你得看i是什么类型的了
如果是无符号的,那就死循环
如果是浮点型,也是死循环。
如果只是int型,会跳出,因为int型超出正数最大值再加就溢出了,将数字溢出到符号位,那就成负数了。
这个只能当反面教材,是出错的代码。
理论上是不会的,因为i肯定有个类型,比如是int型的,达到一定的值后将溢出(变成负值),到时候再增加的话就会跳出循环了,也就是说不是死循环
如果i是int型`且是16位的话不会死``
因为i++加到32767+1=32768的话就是负数啦``
01111111 11111111+1=10000000 00000000
因为10000000 00000000是负数``
所以跳出