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

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

<strong><span style="font-size:18px;">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。 * */ } }</span></strong>

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