2021-05-08 Java语言

Java基础8

  • *扫码器(Scanner)与随机生成器(Random)之猜数字游戏
    今天我们来写个小游戏——猜数字游戏。不过在做之前,我们需要再学两个知识点,因为以之前所学的知识是很难实现的,而这两个知识点就是:扫码器(仪)和随机生成器。这两个东西的作用是什么呢?下面我们来分别分析这两个器件的用处。
  1. 扫描器,是否还记得我们每次定义变量完后赋值的时候都只能给个固定值,比如int i =5,int j = 10…像这样值已经固定死了,而且给用户完全没有体验感。那么是否有让用户填写的功能呢?这时扫码器就该出场了 没错,扫码器的作用就是让用户自己填入对应的信息,就比如我们今天要写一个猜数字游戏,既然是猜数字,那么肯定需要输入数字才能行的呀,这一功能就可以由扫描器操作了。可能这样说还是不好理解,我们先来敲一波代码。
  • 案例:使用扫码器输出两个整数,比较这两个整数的大小。

    import java.util.Scanner;  //这是导包,  不导包无法使用扫码器!!!
    
    public class ScannerDome{ //创建了一个ScannerDome类
       
       public static void main (String[]  args){  //此为函数主入口(主方法),任何java程序都要经过此main方法才能运行 
            Scanner input = new Scanner(System.in); //创建扫描器
            System.out.print("请输入第1个整数:); //提示信息
             int a = input.nextInt(); //使用扫描器,nextInt意思是输入的数字必须是整数,并赋值给 a
             System.out.print("请输入第1个整数:); //提示信息
             int b = input.next.Int(); //同上,赋值给变量 b
                 if(a > b){
                     System.out.println("a>b" );
                 }else{  
                     System.out.println("b>a" );
              } 
         }      
    }
    

运行的结果如下:

 请输入第1个整数:6
 请输入第2个整数:3
 a>b

由上例子,扫描器怎么用应该了解的差不多了吧,那么今天的猜数字游戏已经会一半了,接下来是随机生成器

  1. 随机生成器,这里要关注随机这两个字,记住,这个家伙的随机的,再关注生成器,也就是说生成的东西是随机生成的,就比如数字,是随机生成,咦?这不就是今天需要的功能吗,猜数字,要猜的数字肯定是我们事先不知道的数字才能猜的呀,随机生成器就该出场了,还是老样子,来个案例熟悉熟悉怎么使用。
  • 案例:使用随机生成器,输出这个随机整数是多少。

    import java.util.Scanner;  //这是导包,  不导包无法使用扫码器!!!
    public class ScannerDome{ //创建了一个ScannerDome类                   
    
          public static void main (String[] args){  //此为函数主入口,任何java程序都要经过此main方法才能运行           
           Random random = new Random; //创建随机生成器         
           int a = random.nextInt(); //使用随机生成器 并把随机生成的整数赋值给 a
           System.out.println("随机数a为:" + a);
    

输出的结果是:

     随机数a为:-1396595536

大家是否发现输出的结果很奇葩,有很多的数字出现,也有很大大负数出现(比如上面的输出结果),遇到这种事情不要慌,淡定,我们的代码是没有错的,数字是随机生成,不过数字很奇葩而已,这很明显,我们今天写的这个游戏也不符合条件,那么大的数字,傻子才会去猜,那么有没有办法把范围缩小呢,比如1-10的整数。办法肯定有的,下面我们来实现一下

  • 案例:把上面的案例缩小范围,范围为1-10以内的整数。

    import java.util.Scanner;  //这是导包,  不导包无法使用扫码器!!!
    public class ScannerDome{ //创建了一个ScannerDome类                      
    
         public static void main (String[] args){  //此为函数主入口,任何java程序都要经过此main方法才能运行                        
    Random random = new Random; //创建随机生成器       
    int a1 = random.nextInt(11) +1; //使用随机生成器 并把随机生成的整数赋值给 a             System.out.println("随机数a1为:" + a1);
    

输出的结果是

   随机数a1为:5

这次看起来是不是可以猜数字了,这里需要特别注意的是:这个规定的范围,也就是nextInt(11)+1 这里的意思是范围1-10,它在区间是这样的[1,11),由此可知这个区间前面是包括1的,但是后面是不包括11的,也就是这个区间的范围是1-10,不能取到11。

  1. **实现猜数字游戏**
    
  • 思路分析:
    a.创建随机生成器和扫码器(不要忘记导包)
    b.使用随机生成器规定用户要猜的数字范围和数字类型并生成随机数字
    c.使用扫码器让用户输入想要猜的数字
    d.判断随机生成的数字与用户输入的数字是否相等

  • 四步走,提起袖子,干一波

    import java.util.Scanner;//扫码器包
    import java.util.Random;//随机生成器包
    
    public class Num{ //数字类(随便起来名字,开头字母必须大写)
        
          public static void main (String[] args){  //主入口
    
               Random random = new Random; //创建随机生成器
               Scanner input = new Scanner(System.in); //创建扫描器
    
                 int rnum = random.nextInt(11) +1;   //使用随机生成器
                 System.out.print("请输入一个整数:);//提示信息
                 int snum = input.nextInt();//使用扫码器
    
                 if(snum == rnum){
                        System.out.println("恭喜您,猜对了!");
                  }else{
                       System.out.println("很遗憾,您猜的数字不正确。正确的数字是:"+rnum);
            } 
    }
    

由此就完成了,我们来运行一波:

请输入一个整数:3
很遗憾,您猜的数字不正确。正确的数字是:7

再来一遍:

请输入一个整数:6
恭喜您,猜对了!
  • 确实很六。到此,猜数字游戏就完成了,不过还有缺陷,这个猜数字游戏很抠门,只能猜1次,没有猜对的话很是不服,强烈抗议。因此次数肯定是要设置的,这个就不是很难了,我们已经学过循环语句了,一用循环语句就OK了,这个设置次数的就让大家去思考思考。

你可能感兴趣的:(笔记)