核心java for循环与if条件解释

时间:2016-05-18 10:43:33

标签: java if-statement for-loop

嗨,当我在程序

下运行时
package com.test;

public class Test1 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int i=5;
     for(;;i++){

        if(i<0){
            System.out.println("Break");
            break;
        }
    }

}

}

输出:休息。

怎么可能?任何人都可以解释

先谢谢。

3 个答案:

答案 0 :(得分:0)

如果您将此行添加到代码中

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int i=5;
     for(;;i++){
        System.out.println("Current i: " + i);
        if(i<0){
            System.out.println("Break");
            break;
        }
    }

}

您会在Integer.MAX_VALUE之后看到它会在Integer.MIN_VALUE重新开始,并在某个时间达到最终为零。

答案 1 :(得分:0)

我初始化为5,循环将迭代直到int的最大值 +2147483647之后,该值再次从int的最低值-2147483648开始,所以当条件满足且打印中断时负值开始。

答案 2 :(得分:0)

这是数字系统定义中数字系统定义的情况。(数字电子和数字系统)。

任何progarmming语言thers都是数字系统,例如8位有符号整数,它是-128到127.

所以,如果你输入128,它将被计为-128。 如果你输130,它将被计为-126。

sowhen max正整数值超过数字变为负数且condtion变为true。 这就是为什么要突破。

在循环中插入sop(i),你就会明白。