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

while (i <= j && j <= i && i != j) {
}
我們要上面的代碼變成一個(gè)死循環(huán),感覺(jué)是不是 有點(diǎn)不可思議吧,我們發(fā)現(xiàn)要想i<=j&&j<=i這個(gè)就只有i=j了吧?但是后面又有一個(gè)條件就是i!=j,這頓時(shí)給我們當(dāng)頭一棒,我們還有什么辦法來(lái)讓這個(gè)變成一個(gè)死循環(huán)嗎?問(wèn)題既然能夠被提出來(lái)我們就可以找到解決問(wèn)題的辦法。我們知道即使生成兩個(gè)相同的對(duì)象,他們進(jìn)行“==”比較的時(shí)候返回的值始終為false,我們就可以利用進(jìn)行這個(gè)上面的那個(gè)while循環(huán)了。我們可以想到我們經(jīng)常使用的Integer,我們可以定義兩個(gè)一樣的Integer對(duì)象。下面我們來(lái)看下面的代碼可以讓上面的while循環(huán)變成一個(gè)死循環(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");
        }
        /*
         * 我們運(yùn)行上面的代碼括得到下面的輸出結(jié)果:
         *         i<=j && j<=i :true
         *        ----------分割線-------------
         *        i!=j :true
         *我們發(fā)現(xiàn)兩次運(yùn)行的結(jié)果的都是true
         *這樣就滿足我們死循環(huán)的條件了。它永遠(yuǎn)都是true。
         *
         
*/
        
    }

}

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