import java.io.*;
public class guessnum
{
   public static void main(String args[])
   {
      int x=0;
      int num=(int)(Math.random()*(100-0+1))+0;
      System.out.println("请输入一个100以内的正整数:");
      do
      {
         try
         {
           x=System.in.read();
         }
         catch(IOException e){}
         if(x>num)
           System.out.println("大了,请重新输入:");
         if(x<num)
           System.out.println("小了,请重新输入:");
      }while(x!=num);
               if(x>num)
      System.out.println("恭喜你,猜对了!");
   }
}以上是我的一段代码
但是运行的时候,发现"大了,请重新输入:"或者"小了,请重新输入:"两句会重复四次
要怎么修改?
还有什么我没有发现的问题么?
请高手指教!  
 
 

解决方案 »

  1.   

     if(x>num) 
               System.out.println("大了,请重新输入:"); 
     if(x>num) 
          System.out.println("恭喜你,猜对了!"); 啥时候算对啊
      

  2.   

    下面是我以前写的一个代码/**
     * 作者:     左国党  
     * 创建日期: 2006-9-4 
     * Email:    [email protected]
     * 网址:     http://www.zuoguodang.cn
     */
    import java.io.*;public class Guessnum {
    Guessnum() {
    int a, b, c = 1;
    int i = 0;
    a = (int) (Math.random() * 100.0);
    while (c != 0) {
    if (i == 0) {
    System.out.println("请输入一个1-100的数:");
    }
    String s, p, t;
    char q;
    BufferedReader buf = new BufferedReader(new InputStreamReader(
    System.in));
    try {
    i++;
    s = buf.readLine();
    b = Integer.parseInt(s);
    if (b > 100 || b < 1) {
    System.out.println("您的输入有误,请输入1个1-100之间的数。");
    i = 0;
    continue;
    }
    if (b == a) {
    System.out.println("恭喜你,第" + i + "次猜对了");
    System.out.println("再玩一次(y/n)?");
    BufferedReader buf1 = new BufferedReader(
    new InputStreamReader(System.in));
    q = (char) buf1.read();
    if (q == 'y') {
    i = 0;
    a = (int) (Math.random() * 100.0);
    continue;
    } else if (q == 'n') {
    break;
    } else
    break;
    } else {
    p = (b > a) ? ("大了,") : ("小了,");
    t = (b > a) ? ("1-" + b + "之间的数!") : (b + "-100之间的数!");
    System.out.print(p);
    System.out.println("你应该猜" + t);
    if (i == 10) {
    System.out.println("你没机会了,答案是" + a);
    System.out.println("再玩一次(y/n)?");
    BufferedReader buf1 = new BufferedReader(
    new InputStreamReader(System.in));
    q = (char) buf1.read();
    if (q == 'y') {
    i = 0;
    a = (int) (Math.random() * 100.0);
    continue;
    } else if (q == 'n') {
    break;
    } else
    break;
    }
    }
    } catch (Exception e) {
    System.out.println("您的输入有误!");
    }
    }
    } public static void main(String[] args) {
    Guessnum gue = new Guessnum();
    }
    }