用Java语言写一个抽奖系统,要求每次抽出的奖金随机且不能重复

package test;

import java.util.Random;

public class text4 {
   //抢红包
	public static void main(String[]args) {
		/*
		 *需求:
		 *一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}5个奖金
		 *请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。
		 *打印结果如下:(随机顺序,不一定是下面的顺序)
		 *888元的奖金被抽出
		 *10000元的奖金被抽出
		 *1000元的奖金被抽出
		 *588元的奖金被抽出
		 *2元的奖金被抽出*/
		
		
		/*分析:
		 * 1.定义数组表示奖池,把奖池里面的所有奖项顺序打乱*/
		int[] arr= {2,588,888,1000,10000};
		//2.定义新数组用于存储抽奖的结果
		int[] newArr=new int[arr.length];
		//3.抽奖
		Random r=new Random();
		//这样做的结果就是不会抽到无效数字(重复的数字),可以提高效率
		//因为有5个奖项,所以要循环5次
		for(int i=0;i<arr.length;i++) {
			//获取随机索引
			int randomIndex=r.nextInt(arr.length);
			//拿着i跟随机索引randomIndex上的值进行交换
			int temp=arr[i];
			arr[i]=arr[randomIndex];
			arr[randomIndex]=temp;
			}
		//2.遍历奖池,从0索引开始获取每一个奖项
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]+"元奖金被抽出");
		}
	}
}

运行结果:

 

需求描述

package test;

import java.util.Random;

public class text4 {
   //抢红包
    public static void main(String[]args) {
        /*
         *需求:
         *一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}5个奖金
         *请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。
         *打印结果如下:(随机顺序,不一定是下面的顺序)
         *888元的奖金被抽出
         *10000元的奖金被抽出
         *1000元的奖金被抽出
         *588元的奖金被抽出
         *2元的奖金被抽出*/
        
        
        /*分析:
         * 1.定义数组表示奖池,把奖池里面的所有奖项顺序打乱*/
        int[] arr= {2,588,888,1000,10000};
        //2.定义新数组用于存储抽奖的结果
        int[] newArr=new int[arr.length];
        //3.抽奖
        Random r=new Random();
        //这样做的结果就是不会抽到无效数字(重复的数字),可以提高效率
        //因为有5个奖项,所以要循环5次
        for(int i=0;i<arr.length;i++) {
            //获取随机索引
            int randomIndex=r.nextInt(arr.length);
            //拿着i跟随机索引randomIndex上的值进行交换
            int temp=arr[i];
            arr[i]=arr[randomIndex];
            arr[randomIndex]=temp;
            }
        //2.遍历奖池,从0索引开始获取每一个奖项
        for(int i=0;i<arr.length;i++) {
            System.out.println(arr[i]+"元奖金被抽出");
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Komorebi_9999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值