1.比如编程代码排版.
2.还有更好的算法.(算法也不太会.太高深的别说了估计我还没见过哈);
3.哪里需要改进.
4.有什么bug.
5.主要是编程风格.我觉得有点太糊涂的代码不好阅读.哪位好心人帮改改号阅读了
6.对了try...catch...加在while里面就不能用了为啥啊
try{
System.out.print("请输入一个数字:");
InputStreamReader in = new InputStreamReader(System.in); 
BufferedReader dr = new BufferedReader(in); 
int i = Integer.parseInt(dr.readLine());

}catch(Exception e){}
为啥编译出错啊...
下面是编译不错的代码.哪里改进欢迎指点:import java.io.*;
import java.util.*;
public class GuessValue{
public static void main(String args[]) {
Random sj = new Random();
int k = sj.nextInt(100) ;
try{
while(true){
System.out.print("请输入一个数字:");
InputStreamReader in = new InputStreamReader(System.in); 
BufferedReader dr = new BufferedReader(in); 
int i = Integer.parseInt(dr.readLine());

if(i>k){
System.out.println("你输入的数字大啦...");
}else{
if(i<k){
System.out.println("你输入的数字小啦...");
}else{
System.out.println("你输入的数字对啦...");
break;
}
}
}
}catch(Exception e){
System.out.println("你输入的不是一个数字啊!!");
}
}
}

解决方案 »

  1.   

    int i = Integer.parseInt(dr.readLine());
    最好先对 dr.readLine()的值判断后再转.
      

  2.   

    不怕打击你哈,我说说实话, 个人感觉代码风格写的不易阅读: if( i > k ){  //这里用空格把它们分开,我觉得让读你程序的人感觉会很舒服
        System.out.println("你输入的数字大啦...");    
        }else{
            if( i < k){ //这里也是
                System.out.println("你输入的数字小啦...");    
            } else {
                System.out.println("你输入的数字对啦...");
                break;    
            }
    }
      

  3.   

    得十分..这个说得不错.一定改呵呵.
    1楼啥叫程序得属性啊 ???
    对了我得第六个问题谁帮解答下啊//
    6.对了try...catch...加在while里面就不能用了为啥啊 
    try{ 
    System.out.print("请输入一个数字:"); 
    InputStreamReader in = new InputStreamReader(System.in);  
    BufferedReader dr = new BufferedReader(in);  
    int i = Integer.parseInt(dr.readLine()); }catch(Exception e){ } 
    为啥编译出错啊... 
    下面是编译不错的代码.哪里改进欢迎指点: 
      

  4.   

    你catch(Exception e)跟没catch一样啊,应该catch(IOException e)
    再就是只能玩一次就不能玩了,猜对了就玩了,应该用多线程实现,才对了一会再重新启动一个线程,接着再玩新一轮,对吧?
      

  5.   

    while里可以放try和catch的。
    代码风格与你的个人习惯和公司要求有关。
    要多次玩也不用多线程。
    我的代码:import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.Random;public class GuessValue {    public static void main(String args[]) {
            Random sj = new Random();
            int k = sj.nextInt(100);
            while (true) {
                System.out.print("请输入一个数字:");
                InputStreamReader in = new InputStreamReader(System.in);
                BufferedReader dr = new BufferedReader(in);
                try {
                    int i = Integer.parseInt(dr.readLine());                if (i > k) {
                        System.out.println("你输入的数字大啦...");
                    } else {
                        if (i < k) {
                            System.out.println("你输入的数字小啦...");
                        } else {
                            System.out.println("你输入的数字对啦...");
                            k = sj.nextInt(100);
                        }
                    }
                } catch ( Exception e) {
                    System.out.println("你输入的不是一个数字啊!!");
                }
            }
        }
    }
      

  6.   

    你的变量尽量不要用什么i啊,k啊..
    你把输入的叫input,随即数叫randomNum这样一看就知道是什么东西.
    另外如果分支比较多的话用switch case,或者else if()会好看很多.至于输入的是不是数字你可以在输入的时候就判断掉,没必要靠接异常来判断.只有在真正异常的时候去处理异常,因为java的异常开销是比较大的,可以从根本上避免的话就避免吧...
      

  7.   

    对了..break也尽量别使用..你可以加个boolean endFlag=false在while外面,然后结束的时候把这个endFlag置为ture,while(!endFlag)这样可读性也好点..
      

  8.   

    加上记数功能,提高乐趣和交互性,折半查找,2的7次方 = 128 > 100,最多7次,给7次机会即可  import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Random;/**
     * @author david
     * 猜数字游戏
     */
    public class GuessNumber { public static void main(String[] args) {
    // 新建一个随机数产生器,然后生成一个0到99之间的整数
    Random random = new Random();
    int number = random.nextInt(100); // 记录玩家所猜测的数字
    int guess = 0; // 获取控制台输入
    BufferedReader input = new BufferedReader(new InputStreamReader(
    System.in)); // 记录玩家猜测的次数。
    int counter = 0; System.out.println("我心里有一个0到99之间的整数,你猜是什么?"); do {
    try {
    // 获取玩家的输入。
    guess = Integer.parseInt(input.readLine());
    } catch (NumberFormatException e) {
    // 如果玩家不是输入一个合法的整数,则让他重新输入。
    System.out.println("请输入一个0-99之间的整数!");
    continue;
    } catch (IOException e) {
    System.out.println("程序发生异常错误将被关闭!");
    e.printStackTrace();
    } // 对玩家的输入进行判断。
    if (guess > number)
    System.out.println("大了点,再猜!");
    if (guess < number)
    System.out.println("小了点,再试试!"); // 计数器增加一。
    counter++;
    } while (guess != number); // 判断成绩。
    switch (counter) {
    case 1:
    System.out.println("守护……快来看上帝……");
    break;
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    System.out.println("这么快就猜对了,你很聪明啊!");
    break;
    default:
    System.out.println("猜了半天才猜出来,小同志,尚须努力啊!");
    break;
    } System.out.println("Game Over!");
    }
    }
      

  9.   

    import java.util.*;
    public class Guess {
    public static void main(String[] args) {
    System.out.println("我心里有一个0到99之间的整数,你猜是什么?");
    int counter;  //记录玩家猜测的次数
    int number = (int)(Math.random()*100);  //产生的0~99之间的随机数
    int guess;  //玩家猜的数字
    boolean isCorrect = false;
    Scanner input = new Scanner(System.in);
    for(counter = 1; counter < 20; counter++){
    guess = input.nextInt();  //从键盘获取一个数字
    if(guess == number){
    System.out.println("猜对了!");
    isCorrect = true;
    break;  
    }else if(guess > number){
    System.out.println("大了点,再猜!");
    }else if(guess < number){
    System.out.println("小了点,再试试!");
    }
    }
    if(isCorrect){
         /*计算得分*/
         switch(counter){
             case 1:
            System.out.println("你太有才了!");
            break;
             case 2: 
             case 3:
             case 4:
             case 5:
             case 6:
             case 7: 
            System.out.println("这么快就猜出来了,很聪明么!");
            break;
             default: 
            System.out.println("猜了半天才猜出来,小同志,尚须努力啊!");
            break;
         }
    }else{
    System.out.println("猜测次数已满!");
    }
    }
    }