//随机数比较
import java.util.*;
public class Randoms
{
public static void main(String [] args)
{
       Scanner input = new Scanner(System.in);
   System.out.println("请输入一个1-100的整数");
   int random = (int)(Math.random()*100);
   int num = 0;
   while(num != random)
{
    num = input.nextInt();
   if(num>random)
{
   System.out.println("大了点");
}
else if(num<random)
{
System.out.println("小了点");
}
else 
{
System.out.println("猜对了");
}
  }
}
}想问下你们,为什么把num = input.nextInt();放到循环里面就成一个死循环了呢?
要是可以的话,希望你们尽量说的通俗点,我理解力差

解决方案 »

  1.   

    你的意思是:while(num = input.nextInt()) ?那么while里面是个赋值语句,最终取值就是赋值语句的值,也就相当于:
    while(input.nextInt())从逻辑判断来说,非0即真,那么除非你nextInt输入是0,否则循环无法结束。我猜测你其实是想:while(num != input.nextInt()) 吧?
      

  2.   

    while(num != random) ←这里判断的条件是随机数不为0
    {
    num = input.nextInt(); ←这句话是说num的值为键盘输入值........}
      

  3.   

    你的random 没有循环
     
    把他写进 while  
      

  4.   

    你理解错了,我说的是放进循进while(){“这里面”},不是while("这里面")
    我就去奇怪,为啥放到while(){"这里面"}就是死循环了,放到外面就没事
      

  5.   

    import java.util.*;
    public class Randoms
    {
    public static void main(String [] args)
    {
      Scanner input = new Scanner(System.in);
    System.out.println("请输入一个1-100的整数");
    int random = (int)(Math.random()*100);
    int num = 0;
    while(num != random)
    {if(num>random)//此时num=0,跳出,进入else
    {
    num = input.nextInt();
    System.out.println("大了点");
    }
    else if(num<random)//0<random 始终成立,所以死循环
    {
    System.out.println("小了点");
    }
    else  
    {
    System.out.println("猜对了");
    }
    }
    }
    }你是这个意思吗?
      

  6.   

    我说的意思就是放到"这里"while(){}会死循环,不好意思哈我没表达清除
      

  7.   


    我晕死原来是说反了。那是必然死循环的吧,你把
    num = input.nextInt();
    放在while之前,意味着num永远也没有机会得到新的值,那么while的判定结果当然也就永远不变
      

  8.   

    死循环是为了让你能连续输入,不让虚拟机停止,没有死循环,你运行一次mian方法,就只能输入一次数字