随机生成猜数字(键盘输入)

实现下列功能。

1)程序随机分配给用户一个 1 至 100 之间的整数
2)用户通过键盘输人自己的猜测
3)程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”和“猜对了”
4)如果输入的不是数字,提示并退出
5)如果输入的数字超过100,提示:“超过要求范围”
6)用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”
7)用户猜对以后,显示猜测次数,并提供“重新开始”和“退出”功能

import java.util.Random;//引用生成随机数的包
import java.util.Scanner;//引用从键盘输入数据的包
public class RandomNumber{
    public static void main (String[] args){
          Random random = new Random();
          Scanner reader = new Scanner(System.in);
          int getNumber = 0;//存储从键盘获得的数
          int times;//记录猜测的次数
          int select = 1;//判断选择开始/结束,1进行游戏,0结束
          int guessSelect = 1;//猜测10次后,1继续猜测,0结束
          start:     
          do{
          times = 0;//更新猜测次数为0
          int createRandom = random.nextInt(100)+1;//nextInt生成上限为100的整数,不包括100
          do{
                  times++; 
                  try{
                       System.out.print("请猜测一个数(1-100):");
                       getNumber =reader.nextInt();
                  }catch(Exception e){
                        System.out.println("输入不为数字!系统即将退出!本轮游戏结束!");
                        break start;                  
                  }
                   if(getNumber > 100){
                       System.out.println("第"+times+"次输入数字超过要求范围!");
                    }
                   else if(getNumber < createRandom){
                        System.out.println("第"+times+"次猜测     猜小了!");
                    }
                    else if(getNumber > createRandom){
                         System.out.println("第"+times+"次猜测     猜大了!");        
                     } 
                      if(times/10 > 0 && times%10 == 0){
                          System.out.print("请选择‘继续猜测’(1)或者‘公布答案’(0):");
                          getNumber = reader.nextInt();             
                          guessSelect = getNumber;
                          if(guessSelect==0){
                             break;
                          }
                      } 
               }while(getNumber != createRandom);
                     if(times/10 > 0 && times%10 == 0){
                          System.out.println("已猜测"+times+"次,未猜中,游戏失败!\n本局的正确数字为:"+createRandom);
                     }
                     else{
                          System.out.println("恭喜你!第"+times+"次猜对了!");
                     }
                     
               System.out.print("请选择‘重新开始’(1)或者‘结束’(0):");
               getNumber = reader.nextInt();             
               select = getNumber; 
          }while(select==1);           
    }
}                                                                          

1、随机:Random
import java.util.Random;//引用生成随机数的包
Random random = new Random();
int createRandom = random.nextInt(100)+1;

设置对象,获取一个随机数
next后的为随机数的类型,第一个字母大写
nextInt(100)表示:上限为100的整数,不包括100

2、键盘输入:Scanner
import java.util.Scanner;//引用从键盘输入数据的包
Scanner reader = new Scanner(System.in);
int getNumber = 0;//存储从键盘获得的数
System.out.print(“请猜测一个数(1-100):”);//可以忽略,仅为提示作用
getNumber =reader.nextInt();

3、循环语句:do{}while();
do{
}while(getNumber != createRandom);

do while与while的区别:
do while 至少进入循环进行一次循环(不一定完整,可能被break结束),而while有可能一次也没有进入循环。

4、标记(记号):continue、break
start: //记号
do{
break start;
}while(getNumber != createRandom);

标记要在循环前面,没有的话,可能会找不到该标记
1)一般的continue:会退回当前循环的开头,并继续执行。
2)带标签的continue:回到达标签的位置,并重新进入紧接在哪个标签后面的循环。
3)一般的break:会中断并跳出当前循环。
4)带标签的break:会中断并跳出标签所指的循环。

5、捕抓异常:try{}catch(IOException s){}
try{
System.out.print(“请猜测一个数(1-100):”);
getNumber =reader.nextInt();
}catch(Exception e){
System.out.println(“输入不为数字!系统即将退出!本轮游戏结束!”);
break start;
}

try{ }内为判断是否有异常的内容
IOException s的s并不代表什么,可以自定
后面的{}是捕抓这个异常后要做的内容

6、运行结果:

1)成功运行并重新开始游戏
在这里插入图片描述
2)成功运行并结束游戏在这里插入图片描述
3)每猜测10次未猜中,选择是否继续猜
在这里插入图片描述
在这里插入图片描述
4)输入非数字,结束游戏在这里插入图片描述
5)输入的数据大于100,记录次数并进行下一次猜测在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值