2014-01-25 49 views
-1

suprice结果我看到不同的结果检查整数对另一个,我不知道为什么我reciving这些结果?我看到一个整数比较

例如:

Integer j = new Integer(2); 
    Integer i = new Integer(2); 

    boolean test1 = false; 
    if(i >= j){ 
    test1 = true; 
    }else{ 
    test1 = false; 
    } 

    boolean test2 = false; 
    if(i <= j){ 
    test1 = true; 
    }else{ 
    test2 = false; 
    } 

    System.out.println("i >= j: " + test1); //gives True 
    System.out.println("i <= j: " + test2); //gives False 

    System.out.println(i >= j); //gives True 
    System.out.println(i <= j); //gives True 

我curius,为什么我看到,我是更大的则j,所以我也测试I> J和仍然看到一个真正的结果。

我想知道是否有人可以向我解释这个,或告诉我在哪里可以读到这个。我试图找出它,并已阅读包装类,但不知道这是罪魁祸首。堆叠放置可能?

+0

'if(i <= j){test1 = true;'。应该是'test2 = true'。你也可以简单地做:'boolean test2 = i <= j;' –

+2

仔细检查你写的'test1'和你写的'test2'的位置...... –

+2

这是一个很好的例子,说明你为什么应该限制变量的范围,并在方法或完全不同的类中封装功能。 – toniedzwiedz

回答

3

你有一个错字:在第二个区块中,你写了test1 = true,但应该是test2 = true

+1

确实。但是,这个问题最好通过新的“简单印刷错误”来解决。 –

+0

@OliCharlesworth谢谢!我不知道有一个“错字”的原因。我已经接受了我的近距离投票。 –

+0

@OliCharlesworth还没有看到过。所有的荣耀都归功于新的密切原因!另外,要hypnotoad。 – toniedzwiedz