当前位置: 首页 > news >正文

JAVA思维提升案例5

抢红包案例:

要求:

一个大V直播时发起了抢红包活动,分别有:9、666、188、520、99999五个红包。 请模拟粉丝来抽奖,按照先来先得,随机抽取,抽完即止,注意:一个红包只能被抽一次,先抽或后抽哪一个红包是随机的,示例如下(不一定是下面的顺序):

方法一


import java.util.Random;
import java.util.Scanner;public class Test6 {//完成抢红包案例//方法1:每次抽奖都从数组中,随机找出一个金额,如果该金额不是0,就输出该金额,然后用0替换该位置处的金额; 如果该位置就是0,则重复上一步操作!public static void main(String[] args) {int arr[] = {9, 666, 188, 520, 9999};//定义红包hb(arr);}public static void hb(int[] numbers) {Scanner sc = new Scanner(System.in);Random rand = new Random();//产生随机数来遍历数组不同的下标//需要抽五次红包,所以设置五次循环for (int i = 1; i <= 5; i++) {System.out.println("请按任意键完成抽红包");String q = sc.next();while (true) {//设置以个死循环一直打印下面直到找到不为0的,一直重复这种动作int n = rand.nextInt(numbers.length);int money = numbers[n];if (numbers[n] != 0) {System.out.println("恭喜你抽中了" + money + "元红包");numbers[n] = 0;break;}}}System.out.println("红包抽完了");}
}

方法2:


import java.util.Random;
import java.util.Scanner;public class Test6法2 {//方法二:打乱奖金的顺序,再依次发给粉丝public static void main(String[] args) {int arr[] = {9, 666, 188, 520, 9999};//定义红包test(arr);//调用打乱红包位置的方法tiqu(arr);//调用抽取红包的方法}public static void test(int arr[]) {Random r = new Random();for (int i = 0; i < arr.length; i++) {int rand = r.nextInt(arr.length);//产生随机的数,长度是数组的长度int temp = arr[i];arr[i] = arr[rand];//交换两个位置的值arr[rand] = temp;}}public static void tiqu(int arr[]){Scanner sc = new Scanner(System.in);for (int i = 0; i < arr.length; i++) {System.out.println("请按任意键完成抽红包");String q = sc.next();int money = arr[i];System.out.println("恭喜您抽到了"+money+"元");arr[i] = 0;System.out.println("抽取红包的活动结束");    }
}}

 

http://www.lryc.cn/news/453543.html

相关文章:

  • PostgreSQL的字符集
  • CUDA 参考文章
  • 强缓存和协商缓存的区别
  • 工控系统组成与安全需求分析
  • C(十三)for、while、do - while循环的抉择 --- 打怪闯关情景
  • 【Android 源码分析】Activity生命周期之onStop-2
  • SpringCloudStream+RocketMQ多topic
  • 随记 前端框架React的初步认识
  • 数据结构 ——— 单链表oj题:链表分割(带哨兵位单向不循环链表实现)
  • 华为 HCIP-Datacom H12-821 题库 (32)
  • [C++][第三方库][brpc]详细讲解
  • Python-Learning
  • 如何让 Android 的前端页面像 iOS 一样“优雅”?
  • 10.3学习
  • Shell文本处理(三)
  • 5个python多线程简单示例
  • Streamlit:用Python快速构建交互式Web应用
  • 深入浅出Vue.js组件开发:从基础到高级技巧
  • Python并发编程挑战与解决方案
  • LeetCode从入门到超凡(五)深入浅出---位运算
  • 一些 Go Web 开发笔记
  • [Go语言快速上手]初识Go语言
  • 基于STM32的智能风扇控制系统设计
  • OpenCV 形态学相关函数详解及用法示例
  • Kafka学习笔记(三)Kafka分区和副本机制、自定义分区、消费者指定分区
  • 华为 HCIP-Datacom H12-821 题库 (31)
  • 占位,凑满减
  • SpringBoot校园资料平台:从零到一的构建过程
  • czx前端
  • Perforce演讲回顾(上):从UE项目Project Titan,看Helix Core在大型游戏开发中的版本控制与集成使用策略