java学习之路--------第五天

今天的内容主要就是随机数的二种方式和有关随机数的二个案例

1.Math方法

语法:Math.random();

          生成的是0.0~1.0之间的随机浮点数

备注:前包括后不包括0.0可能会生成,1.0不会生成

2.Random类

语法:Random r = new Random();

常用的方法:

           r.nextInt();生成int取值范围内的任意一个整数

           r.nextInt(范围):生成指定范围内的整数

     例子:生成1~100的随机整数

         r.nextInt(100)+1;    1~101;但是取不到101,所以为1~100

案例:

1、猜数字游戏(1~100)

先1~100之间的整数,从控制台输入你猜的数字和随机生成的数比较,总分一百分,每猜错一次扣10分,猜对后剩多少分

以下是主要代码:

Scanner s = new Scanner(System.in);

      Random r = new Random();

      int num = r.nextInt(100)+1;

      int score = 100;

      while(true) {

        

         System.out.println("请输入你猜的数:");

         int cai = s.nextInt();

         if(cai!=num) {

            score = score - 10;

            if(score==0) {

                System.out.println("你真笨,10次都没有猜中!");

                break;

            }else {

                if(cai>num) {

                   System.out.println("你猜的数大了");

                }else {

                   System.out.println("你猜的数小了");

                }

            }

         }else {

            System.out.println("真棒,你猜对了,"+"共获得"+score+"");

            break;

2.双色球

红球:1~33个号码中随机生成6个号码(不能重复)放入红球数组中去,生成完之后用冒泡排序进行排序

蓝球:1~16个号码中随机获取一个号码,通过数组的扩容添加到数组中去

以下是关键代码:

Random r = new Random();

      //定义一个空数组用于存放数据

      int[] arr = {};

     

      //定义一个计数器

      int num = 0;

      //6个数,循环6

   out:  for(;;) {

         //定义一个开关

         boolean flag = false;

         //红球获取的随机数

         int hong = r.nextInt(33)+1;

         //判断随机数数组中是否已经存在

      in:   for(int i = 0;i<arr.length;i++) {

            //判断数组中对否已经存在该数,如果存在,则不放入数组中

            if(arr[i] == hong) {

                flag = true;

                continue out;

            }

         }

         if(!flag) {

                num++;

                if(num<6) {

                   arr = Arrays.copyOf(arr, arr.length+1);

                   arr[arr.length-1] = hong;

                }else {

                   break out;

            }

         }

        

      }

      //使用冒泡排序将数组排序

      for(int i = 0;i<arr.length-1;i++) {

         for(int j = 0;j<arr.length-1-i;j++) {

            if(arr[j]>arr[j+1]) {

                int temp = arr[j+1];

                arr[j+1] = arr[j];

                arr[j] = temp;

            }

         }

      }

      //蓝球获取随机数

      int lan = r.nextInt(16)+1;

      arr = Arrays.copyOf(arr, arr.length+1);

      arr[arr.length-1] = lan;

      System.out.println(Arrays.toString(arr));

         }

猜你喜欢

转载自blog.csdn.net/mataodehtml/article/details/83409544