我們一般都要在代碼中都是要避免死循環(huán)的,但是今天我要讓大家把下面的for循環(huán)代碼變成一個死循環(huán),這有點不可思議吧,哈哈。我們的要求死循環(huán)的代碼如下:

while (i <= j && j <= i && i != j) {
}
我們要上面的代碼變成一個死循環(huán),感覺是不是 有點不可思議吧,我們發(fā)現(xiàn)要想i<=j&&j<=i這個就只有i=j了吧?但是后面又有一個條件就是i!=j,這頓時給我們當(dāng)頭一棒,我們還有什么辦法來讓這個變成一個死循環(huán)嗎?問題既然能夠被提出來我們就可以找到解決問題的辦法。我們知道即使生成兩個相同的對象,他們進行“==”比較的時候返回的值始終為false,我們就可以利用進行這個上面的那個while循環(huán)了。我們可以想到我們經(jīng)常使用的Integer,我們可以定義兩個一樣的Integer對象。下面我們來看下面的代碼可以讓上面的while循環(huán)變成一個死循環(huán)。
package test32;

public class test01 {

    /**
     * 
@param args
     
*/
    public static void main(String[] args) {
        
        Integer i = new Integer(1);
        Integer j = new Integer(1);
        //上面的代碼可以滿足,i<=j && j<=i,也就是i==j
        if(i<=j && j<=i)
        {
            System.out.println("i<=j && j<=i :" + "true");
        }
        else
        {
            System.out.println("i<=j && j<=i :" +"false");
        }
        System.out.println("----------分割線-------------");
        
        if(i!=j)
        {
            System.out.println("i!=j :"+"true");
        }
        else
        {
            System.out.println("i!=j :"+"false");
        }
        /*
         * 我們運行上面的代碼括得到下面的輸出結(jié)果:
         *         i<=j && j<=i :true
         *        ----------分割線-------------
         *        i!=j :true
         *我們發(fā)現(xiàn)兩次運行的結(jié)果的都是true
         *這樣就滿足我們死循環(huán)的條件了。它永遠(yuǎn)都是true。
         *
         
*/
        
    }

}

像這樣的問題 ,我們其實在編程中很少用到的。但是這個在面試護著筆試的時候就很容易的被問到,當(dāng)時可能會盟了,所以我們就要平時多積累這樣的小問題,到面試或者筆試的時候就會迎刃而解了。