Java數據實現一個簡單雙色球搖獎功能


雙色球:從1-33號球中選取6個紅球,且紅球不重復     

              從1-16號球中選取一個籃球

話不多說 上代碼~~~

package Javaee;

import java.util.Arrays;
import java.util.Random;

public class DoubleChromosphere {
public static void main(String[] args) {
//定義紅球池
int[] redpool = new int[33];
//添加紅球數字
for (int i = 0; i < redpool.length; i++) {
redpool[i] = i + 1;
}
//定義籃球池
int[] bluepool=new int[16];
for (int j = 0; j < bluepool.length; j++) {
bluepool[j] = j + 1;
}
//定義被選中的紅球
int[] redballs =new int[6];
int x;
A: for (int i = 0; i < redballs.length; i++) {
x = new Random().nextInt(33);
for (int j = 0; j <= i; j++) {
//去重過程
//判斷當前循環取出的紅球是否跟前幾次取出的一樣
//如果一樣 大循環A向后退一次,重新取出紅球
if (redballs[j] == redpool[x]) {
i--;
continue A;
}
}
//如果不一樣,則把取出的紅球池中取出的紅球放入紅球數組中
redballs[i] = redpool[x];
}
//取出籃球
int a = bluepool[new Random().nextInt(16)];
//利用冒泡排序對紅球進行排序
int temp;
for (int i = 0; i < redballs.length-1; i++) {
for (int j = 0; j < redballs.length-i-1; j++) {
if (redballs[j]>redballs[j+1]) {
temp=redballs[j+1];
redballs[j+1]=redballs[j];
redballs[j]=temp;
}
}
}
System.out.println("紅球為:" + Arrays.toString(redballs));
System.out.println("藍球為:" +a);
}
}

 

關鍵問題在於去除重復的紅球,使用i--和對continue對數據進行去重,主要在於理解返回上一次循環和continue跳過此次循環重新賦值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM