一个主播发起抢红包活动,有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循环,将数组打乱顺序,按顺序提取。