本帖最后由 王广亚 于 2013-8-27 15:42 编辑
- <p> </p><p>
- import java.util.InputMismatchException;
- import java.util.Scanner;</p><p>public class GuessNumber {
- static GuessNumber GN=new GuessNumber();
- /*获取随机数*/
- public int randomNumber(){
- int num = (int)(Math.random()*100+1);//为什么在我机器上每次运行出来的随机数都是1呢?求改善。在戴文娟同学的提醒下已解决
- return num;
- }
- /*用户输入猜的数字*/
- public int guess()throws InputMismatchException{//还有就是虽然这个异常是RuntimeException的子类,但是我还是想用上这个异常处理。
- Scanner sc = new Scanner(System.in);
- int i = sc.nextInt();
- return i;
- }
- public void client(){
- int numberuder;
- System.out.println("猜数游戏开始,请猜出1——100之间的一个整数?");
- int numberSystem=GN.randomNumber();
- try{
- numberuder=GN.guess();
- }
- catch(InputMismatchException e){
- System.out.println("您输入的不是数字,请输入数字");
- numberuder =GN.guess();
- }
- while(numberSystem!=numberuder){
- if(numberSystem>numberuder)
- System.out.println("您猜的数小了,请再猜:");
- if(numberSystem<numberuder)
- System.out.println("您猜的数大了,请再猜:");
- try{
- numberuder=GN.guess();
- }
- catch(InputMismatchException e){
- System.out.println("您输入的不是数字,请输入数字");//我想让他只要输入的不是数字就重新输入,而不是像这样只可以重输一次,怎么修改?</p><p> //还有我知道这里的代码复用性有点差,因为上面已经有一段同样的代码了。
- numberuder =GN.guess();
- }
- }
- System.out.println("恭喜您猜对了:");
- }
- public static void main(String[] args) {
- GN.client();
- }
- }
- </p><p> </p>
复制代码 |