日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java抽签小程序(可控制抽几个人)(利用随机数与数组想结合)

發布時間:2023/12/20 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java抽签小程序(可控制抽几个人)(利用随机数与数组想结合) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

拿宿舍抽簽來舉例子(宿舍抽簽出人去干活,6人間)
直接先上代碼,再解釋

package Shuai;import java.util.Random; import java.util.Scanner;public class 抽簽需改善 { public static void main(String[]args) {System.out.println("請輸入你要抽取的人數");Scanner scanner=new Scanner(System.in);int x=scanner.nextInt();int[]a=new int[x];int randomNum = 0;int key=0;for (int i = 0; i < a.length; i++) {randomNum=(int)(Math.random()*x+1);if(i==0) {randomNum=a[i];continue;}for (int j = 0; j <= i; j++) {if(a[j]==randomNum) {key=1;}}if(key==0) {a[i]=randomNum ;}else {i--;key=0;continue;}}for (int c = 0; c < a.length; c++) {if(a[c]==0) {System.out.println("張超");}if(a[c]==1) {System.out.println("晉子健");}if(a[c]==2) {System.out.println("邵金河");}if(a[c]==3) {System.out.println("劉洋");}if(a[c]==4) {System.out.println("路金熙");}if(a[c]==5) {System.out.println("李先凱");}} } }

第一步 ; 決定抽幾個人并創建數組

利用Scanner從鍵盤錄入要抽取的人數x(本例子為6),并創建有x個元素的數組

System.out.println("請輸入你要抽取的人數");Scanner scanner=new Scanner(System.in);int x=scanner.nextInt();int[]a=new int[x];

第二步 ;引入key與randomNum

為了生成不重復的隨機數,除了引入隨機數以外我們用一個key來當作一個衡量。

int randomNum = 0;int key=0;

第三步 ;生成不重復的隨機數

for (int i = 0; i < a.length; i++) {randomNum=(int)(Math.random()*x+1);//生成x個隨機數if(i==0) {randomNum=a[i];continue;}for (int j = 0; j <= i; j++) {if(a[j]==randomNum) {key=1;}}if(key==0) {a[i]=randomNum ;}else {i--;key=0;continue;}

在這里對第三步第二行的這里的+1給出一個解釋。

randomNum=(int)(Math.random()*x+1);

Math.random()返回一個double類型的0.0-1.0之間的數值,包括0,不包括1,這個數值*100,那范圍不就是0-100(不包括)了么。強轉之后范圍就是0-99,為了達到我們手動選擇生成幾個隨機數的目的,讓其+1.
總之一句話解釋就是由于強轉的原因,范圍縮小了1,現在給它補回來。

進入正文解釋

首先根據注釋得知,先生成x(6)個隨機數。

randomNum=(int)(Math.random()*x+1);//生成x個隨機數

其次,當i==0時,記錄下此時的隨機數并放入數組a中成為下表為0的數組中的第一個元素a[i]=randomNum
(a[0]=第一個隨機數)
然后使用continue結束語句使for循環后面的內容正常進行。

for (int j = 0; j <= i; j++) {if(a[j]==randomNum) {key=1;}}if(key==0) {a[i]=randomNum ;}else {i--;key=0;continue;}

若a[1]=randomNum(與a[0]重復了),則使key=1,并使i–,key=0(再循環一次),
若a[1]與a[0]不同,則將其放入數組中稱為下標為1的數組中的第二給元素。

總之著兩句話的意思用一句話解釋就是

在將隨機數放入數組前進行一個判斷
若是數組里的數與新生成的數有重復則再生成一次隨機數,若是無重復則
將其錄入數組中,直到錄完并形成你所需要的數組。

我已經盡力寫的詳細了,我覺得有時候真的是人的懶推動了技術的進步(手動滑稽)

總結

以上是生活随笔為你收集整理的Java抽签小程序(可控制抽几个人)(利用随机数与数组想结合)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。