admin管理员组

文章数量:1794759

【抢红包】

【抢红包】

需求:

一个大V直播抽奖,奖品是现金红包,分别有{2, 588 , 888, 1000, 10000}五个奖金。请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)

分析 :
定义一个数组用于存储这些奖金金额。
定义一个数组用于记录已经抽到的金额。
每次抽奖都随机一个索引,取出索引对应的奖金金额,判断该金额之前是否抽中过,抽中过从新抽一次。

在这里插package com.itheima.test;import java.util.Random;public class Test6 {public static void main(String[] args) {// 定义数组 , 存储奖池中的金额int[] arr = {2, 588, 888, 1000, 10000};// 定义数组 , 存储已经抽取到的金额int[] newArr = new int[arr.length];// 随机数对象Random r = new Random();// 遍历新数组for (int i = 0; i < newArr.length; i++) {// 随机索引int randomIndex = r.nextInt(arr.length);// [0.4]// 从存储奖池的数组中随机取一个元素赋值给新的数组newArr[i] = arr[randomIndex];// 拿到当前元素之前的所有数据for (int j = 0; j < i; j++) {if (newArr[i] == newArr[j]) {i--;break;}}}// 遍历新数组 , 打印随机的金额for (int i = 0; i < newArr.length; i++) {System.out.println(newArr[i] + "元的奖项被抽出...");}}
}

本文标签: 抢红包