黑马程序员技术交流社区

标题: 循环的小问题 [打印本页]

作者: 胡晓思    时间: 2013-6-3 09:25
标题: 循环的小问题
本帖最后由 胡晓思 于 2013-6-3 19:58 编辑

请提供一个对i,j的声明,将下面的循环转变为一个无限循环
  1. while( i<=j && j<=i && i!=j ){
  2. }
复制代码
看上去就像要i又等于j  又不等于j一样  怎么解决啊??

作者: 萧萧北    时间: 2013-6-3 09:35
i<=j && j<=i && i!=j  这个条件就不满足啊,程序是不会执行while里面的代码的。。
楼主说的无限循环就是 死循环了吧
如果要执行无限循环
可以直接把代码改为:
while(true){
    //死循环的内容
}
作者: 赵乐    时间: 2013-6-3 09:36
搞不懂 i<=j && j<=i && i!=j 这条件怎么也满足不了啊
作者: 曹世明    时间: 2013-6-3 09:36
这个不可能吧
应该是这样的吧
while(i<=j||j<=||i!=j){}

作者: 萧萧北    时间: 2013-6-3 09:36
i<=j && j<=i && i!=j  这个条件就不满足啊,程序是不会执行while里面的代码的。。
楼主说的无限循环就是 死循环了吧
如果要执行无限循环
可以直接把代码改为:
  1. while(true){
  2. //死循环的内容
  3. }
复制代码

作者: 胡晓思    时间: 2013-6-3 09:37
萧萧北 发表于 2013-6-3 09:35
i

题目的意思应该是要对i,j赋初值  使得while里的表达式为true  而不是直接改
作者: 胡晓思    时间: 2013-6-3 09:45
曹世明 发表于 2013-6-3 09:36
这个不可能吧
应该是这样的吧
while(i

试下这段代码怎么样? 是不是无限循环啊??
  1. public class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Integer i = new Integer(0);
  6.                 Integer j = new Integer(0);
  7.                 while( i<=j && j<=i && i!=j ){
  8.                         System.out.print("hello ");
  9.         }
  10.         }
  11. }
复制代码

作者: First    时间: 2013-6-3 09:47
既然条件始终为假,加个否定不就是true了吗?
  1. while(! ( i<=j && j<=i && i!=j )){
  2. }
复制代码

作者: 萧萧北    时间: 2013-6-3 09:58
本帖最后由 萧萧北 于 2013-6-3 09:59 编辑
胡晓思 发表于 2013-6-3 09:37
题目的意思应该是要对i,j赋初值  使得while里的表达式为true  而不是直接改


既然要对i,j赋值的话,楼主之前的条件为false
那可以这样啊 i<=j||j<=i||i!=j
这样就无论怎样都满足条件
就可以无限循环了吗

作者: 胡晓思    时间: 2013-6-3 10:08
萧萧北 发表于 2013-6-3 09:58
既然要对i,j赋值的话,楼主之前的条件为false
那可以这样啊 i

你这是修改题目了   题目给的表达式 就&&连的 修改表达式那就没意义了  
是要对i,j声明  然后下式得以成立
i<=j && j<=i && i!=j  =true
作者: 萧萧北    时间: 2013-6-3 10:26
胡晓思 发表于 2013-6-3 10:08
你这是修改题目了   题目给的表达式 就&&连的 修改表达式那就没意义了  
是要对i,j声明  然后下式得以成 ...
  1. //楼主这题很有深度,是我没看仔细了,抱歉。。。
  2.                 Integer i=new Integer(0);  //定义i,j为引用类型
  3.                 Integer j=new Integer(0);
  4.                 while( i<=j && j<=i && i!=j )
  5.                 {
  6.                         System.out.println("YES");
  7.                 }
复制代码

作者: a464538715    时间: 2013-6-3 13:10
楼主 已然是被你们给气傻了
作者: a464538715    时间: 2013-6-3 13:19
i <= j  和 j <= i
调用的是hashCode()方法
所以是true 后面就不知道为什么是true了 求大神解答





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2