Doflying223 2021-05-13 23:16 采纳率: 100%
浏览 71
已采纳

利用Java解决猜数字问题

猜数游戏,随机生成一个1 到100之间的整数,从键盘输入数字进行猜数,一共可以猜5次,如果猜小了在
控制台输出猜小了,如果猜大了,在控制台输出猜大了,如果猜
对了在控制台输入 恭喜你猜对了,并结束游戏。 注意当输入的不是数字或数字不合服规则时,不算次数

提示:利用自定义异常操作

  • 写回答

3条回答 默认 最新

  • Doflying223 2021-05-14 16:56
    关注
    package com.cn.day.eight;
    
    import java.util.Random;
    import java.util.Scanner;
    
    public class Demo10 {public static void main(String[] args) throws MyExcept {
        //需求:
        //1.猜五次   输入的数据有误  或者不是1~100之间的不算次数
        //2.当前猜测的数据跟随机数比较
    
        Scanner sc = new Scanner(System.in);
        Random r = new Random();
        int i = r.nextInt(100) + 1;
        System.out.println("---------------->>"+i);
        //定义计数器
        int count = 0;
        while(true){
            if(count == 5){
                break;
            }
    
            System.out.println("请输入一个0~100的数字");
            int x = 0;
            try {
                x = sc.nextInt();//111absb回车
                if (! (x>=1 &&x<=100))
                    throw new MyExcept("只能是1~100之间的数字。");
    
            } catch (Exception e) {
                //死循环的原因:
                //当你使用nextint来收集int类型的数据的时候
                //如果你输入的信息不满足纯数字[123abc],默认在后面多加了一个回车键
                sc.nextLine();
                System.out.println(e.getMessage());
                continue;
            }
            if(x>i){
                System.out.println("大了");
                count++;
            }else if(x<i){
                System.out.println("小了");
                count++;
            }else{
                System.out.println("猜对了");
                break;
            }
    
        }
    }
    }
    class MyExcept extends Exception{
        private String msg;
        public MyExcept(){
    
        }
        public MyExcept(String msg){
            super(msg);
            this.msg = msg;
        }
        @Override
        public String getMessage() {
    
            return "出错了:" + msg;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件