我们一般都要在代码中都是要避免死循环的,但是今天我要让大家把下面的for循环代码变成一个死循环,这有点不可思议吧,哈哈。我们的要求死循环的代码如下:

while (i <= j && j <= i && i != j) {
}
我们要上面的代码变成一个死循环,感觉是不是 有点不可思议吧,我们发现要想i<=j&&j<=i这个就只有i=j了吧?但是后面又有一个条件就是i!=j,这顿时给我们当头一棒,我们还有什么办法来让这个变成一个死循环吗?问题既然能够被提出来我们就可以找到解决问题的办法。我们知道即使生成两个相同的对象,他们进行“==”比较的时候返回的值始终为false,我们就可以利用进行这个上面的那个while循环了。我们可以想到我们经常使用的Integer,我们可以定义两个一样的Integer对象。下面我们来看下面的代码可以让上面的while循环变成一个死循环。
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");
        }
        /*
         * 我们运行上面的代码括得到下面的输出结果:
         *         i<=j && j<=i :true
         *        ----------分割线-------------
         *        i!=j :true
         *我们发现两次运行的结果的都是true
         *这样就满足我们死循环的条件了。它永远都是true。
         *
         
*/
        
    }

}

像这样的问题 ,我们其实在编程中很少用到的。但是这个在面试护着笔试的时候就很容易的被问到,当时可能会盟了,所以我们就要平时多积累这样的小问题,到面试或者笔试的时候就会迎刃而解了。