2014-01-25 55 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