1. 程式人生 > >java學習之路--------第五天

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));

         }