利用随机数生成数组下标之模拟直播抽奖!

利用随机数生成数组下标,模拟直播抽奖!

**我们先来看一下题目:**

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

再来看一下题目要求打印的内容

打印效果如下:(随机顺序,不一定是下面的顺序) 
  • 588元的奖金被抽出
  • 10000元的奖金被抽出
  • 1000元的奖金被抽出
  • 2元的奖金被抽出
  • 888元的奖金被抽出

***简要分析:

  1. 首先我们需要定义一个存放奖金的数组
  2. 其次我们还需要一个boolean类型的数组去跟奖金数组做对比
  3. 接着需要一个随机数去生成数组的下标
  4. 然后我们需要用技术区去记录去到的值
  5. 接着定义一个数组下标,每输出一个数,下标改成对应的数的下标
  6. 创建循环体,取5次数
  7. 判断这个数是否取重复了

***按照分析,我们用代码实现它:

import java.util.Random;

/**
 * 1.一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}五个奖金。
 * 请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。 
 * 打印效果如下:(随机顺序,不一定是下面的顺序) 888元的奖金被抽出
 * 588元的奖金被抽出 10000元的奖金被抽出 1000元的奖金被抽出 2元的奖金被抽出
 *
 */
public class Price {
	// 程序入口
	public static void main(String[] args) {
		//定义一个数组用来存放随机产生的5个数
		int[] bouns = {2,588,888,1000,10000};
		//定义一个boolean类型的数组,
		boolean[] boo = new boolean[5];
		//定义一个随机数
		Random rd = new Random();
		//定义一个计数器,每输出一个需要输出的数,计数器就记录一次
		int counter=1;
		//定义一个数组下标,每输出一个数,下标改成对应的数的下标
		int index = -1;
		//创建循环体,取5次数
		while(counter<=5) {
			//让数组下标随机产生
			index=rd.nextInt(bouns.length);
			//判断这个数是否是重复的
			if(boo[index]) {//如果为true
				//进入下一次循环
				continue;				
			}else {//如果为false
				//计数器加一
				counter++;
				//输出这个数
				System.out.println(bouns[index]+"元的奖金被抽出!");
				把这个数的下标改成改为true
				boo[index]=true;
			}
				
		}
	}

}

最后,我们来看看最终运行的效果吧!

在这里插入图片描述

我们可以看到两次都是随机抽的,效果达到!

在这里插入图片描述

总结:本题就是利用随机数产生的数组下标,去找数组里面的数,然后打印相关内容,还有一种方法就是利用数组的缩容去实现,我们改日分享另一种做法,感谢大家持续关注!

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值