这个是不是死循环呢for(int i 1 i0 i++){ System.out.println(i)}我理解的是,不是死循环,因为int类
这个是不是死循环呢
for(int i = 1; i>0 ; i++){
System.out.println(i);
}我理解的是,不是死循环,因为int类型容纳量好像是2的32次方个数吧,不知道对不对
[解决办法]
不会死循环,楼主理解正确,把代码稍微改写下,即可看出
- Java code
for(int i = Integer.MAX_VALUE -1; i>0 ; i++){ System.out.println(i); }
[解决办法]
楼主理解的完全正确,等i超过整数的范围时,会溢出,此时i<0了
[解决办法]
int基本类型是有范围的-2147483648~2147483647。
[解决办法]
不会成死循环,不过栈内存分配太多变量,容易造成栈溢出现象,另外我们知道int类型的最大值为2G-1
2的32次方-1
内存补码为01111111 11111111 11111111 11111111
当进入下一次循环时i+1此时i=2G根据2进制补码原则补码为
10000000 00000000 00000000 00000000
变为int类型的最小值。从这个循环我们可以得到一个结论
int 类型最大值+1=int 类型最小值
[解决办法]
嗯,不是死循环。楼上讲 int 类型最大值+1=int 类型最小值 是正确的。 