一个主播发起抢红包活动,有2,5,9,66,666,五个红包,先到先得,输入任意数字开始抢。每个红包只能抽一次,先到先得,抽完即止。
方法一:for循环,随机数字生成器,抽到谁就把那个换成0,判断是不是零,是零就结束。
package com.lzk.test;
import java.util.Random;
import java.util.Scanner;
public class test {
//一个主播发起抢红包活动,有2,5,9,66,666,五个红包,先到先得,输入任意数字开始抢。每个红包只能抽一次,先到先得,抽完即止。
//方法一:for循环,随机数字生成器,抽到谁就把那个换成0,判断是不是零,是零就结束。
public static void main(String[] args) {
int[] redPacket = {2, 5, 9, 66, 666};
start(redPacket);
}
public static void start(int[] redPacket) {
Scanner scanner = new Scanner(System.in);
Random r = new Random();
for (int i = 0; i < redPacket.length; i++) {
System.out.println("请输入任意数字开始");
int input = scanner.nextInt();
while (true) {
int index = r.nextInt(redPacket.length);
int num = redPacket[index];
if (num != 0) {
System.out.println("恭喜你抢到" + num + "元红包");
redPacket[index] = 0;
break;// 抢到红包就退出循环
}
}
}
System.out.println("红包已被抢完");
}
}
方法二:for循环,将数组打乱顺序,按顺序提取。