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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

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

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

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

package Shuai;import java.util.Random; import java.util.Scanner;public class 抽簽需改善 { public static void main(String[]args) {System.out.println("請(qǐng)輸入你要抽取的人數(shù)");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("李先凱");}} } }

第一步 ; 決定抽幾個(gè)人并創(chuàng)建數(shù)組

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

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

第二步 ;引入key與randomNum

為了生成不重復(fù)的隨機(jī)數(shù),除了引入隨機(jī)數(shù)以外我們用一個(gè)key來當(dāng)作一個(gè)衡量。

int randomNum = 0;int key=0;

第三步 ;生成不重復(fù)的隨機(jī)數(shù)

for (int i = 0; i < a.length; i++) {randomNum=(int)(Math.random()*x+1);//生成x個(gè)隨機(jī)數(shù)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;}

在這里對(duì)第三步第二行的這里的+1給出一個(gè)解釋。

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

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

進(jìn)入正文解釋

首先根據(jù)注釋得知,先生成x(6)個(gè)隨機(jī)數(shù)。

randomNum=(int)(Math.random()*x+1);//生成x個(gè)隨機(jī)數(shù)

其次,當(dāng)i==0時(shí),記錄下此時(shí)的隨機(jī)數(shù)并放入數(shù)組a中成為下表為0的數(shù)組中的第一個(gè)元素a[i]=randomNum
(a[0]=第一個(gè)隨機(jī)數(shù))
然后使用continue結(jié)束語句使for循環(huán)后面的內(nèi)容正常進(jìn)行。

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]重復(fù)了),則使key=1,并使i–,key=0(再循環(huán)一次),
若a[1]與a[0]不同,則將其放入數(shù)組中稱為下標(biāo)為1的數(shù)組中的第二給元素。

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

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

我已經(jīng)盡力寫的詳細(xì)了,我覺得有時(shí)候真的是人的懶推動(dòng)了技術(shù)的進(jìn)步(手動(dòng)滑稽)

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。