我们一般都要在代码中都是要避免死循环的,但是今天我要让大家把下面的for循环代码变成一个死循环,这有点不可思议吧,哈哈。我们的要求死循环的代码如下:
我们要上面的代码变成一个死循环,感觉是不是 有点不可思议吧,我们发现要想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。
*
*/
}
}
像这样的问题 ,我们其实在编程中很少用到的。但是这个在面试护着笔试的时候就很容易的被问到,当时可能会盟了,所以我们就要平时多积累这样的小问题,到面试或者笔试的时候就会迎刃而解了。