抽奖随机数与枚举PPT讲稿.ppt
《抽奖随机数与枚举PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《抽奖随机数与枚举PPT讲稿.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、抽奖随机数与枚举抽奖随机数与枚举第1页,共17页,编辑于2022年,星期日内容介绍内容介绍n11.1 任务预览任务预览n11.2 随机数及随机数及Random类类n11.3 可变参数方法可变参数方法n11.4 枚举类型枚举类型n11.5 本章小结本章小结n11.6 实训实训11:抽奖:抽奖第2页,共17页,编辑于2022年,星期日11.1 任务预览任务预览 n本章实训程序运行结果:本章实训程序运行结果:第3页,共17页,编辑于2022年,星期日11.2 随机数及随机数及Random类类 njava.util包的包的Random类对象是随机数生成器。如:类对象是随机数生成器。如:Random r
2、and=new Random();Random rand2=new Random(12345L);/long型型随机数种子随机数种子n一般情况下,无需在一般情况下,无需在Random构造方法中给出随机数种子。构造方法中给出随机数种子。n生成随机数例:生成随机数例:int ir=rand.nextInt(100);/生成生成0到到99int随机数随机数double dr=rand.nextDouble();/生成生成0到到1(不含不含1)以内的以内的double型随机数型随机数n注意:还可调用注意:还可调用Math类的静态方法类的静态方法random()生成大于等于生成大于等于 0且小于且小于
3、1的的double型随机数:型随机数:Math.random()第4页,共17页,编辑于2022年,星期日【例【例【例【例11-111-1】编程,随机抽取】编程,随机抽取】编程,随机抽取】编程,随机抽取1 1到到到到100100范围内范围内范围内范围内1010个不同个不同个不同个不同的数,并按升序输出。的数,并按升序输出。的数,并按升序输出。的数,并按升序输出。n分析:只是抽取分析:只是抽取10个不考虑重复情况的随机数的代码:个不考虑重复情况的随机数的代码:import java.util.*;public class Example1_2 public static void main(St
4、ring args)Random rand=new Random();int nums=new int10;/存放随机数数组存放随机数数组 for(int i=0;i10;i+)numsi=rand.nextInt(100)+1;/生成随机数生成随机数 Arrays.sort(nums);/数组元素按升序排序数组元素按升序排序 System.out.println(1到到100范围内的范围内的10个随机数如下:个随机数如下:);System.out.println(Arrays.toString(nums);第5页,共17页,编辑于2022年,星期日生成生成生成生成1010个相互不重复的随机数
5、程序个相互不重复的随机数程序个相互不重复的随机数程序个相互不重复的随机数程序 n在每次生成随机数时,把它依次与存在的随机数作比较。在每次生成随机数时,把它依次与存在的随机数作比较。Random rand=new Random();int nums=new int10;for(int i=0;i10;i+)whiletag:while(true)/带标号语句,抽取第带标号语句,抽取第i个随机数个随机数 int randNum=rand.nextInt(100)+1;/生成随机数生成随机数 for(int j=0;ji;j+)/与数组保存的随机数依次比较与数组保存的随机数依次比较 if(randN
6、um=numsj)/如果有重复,如果有重复,continue whiletag;/则继续则继续while循环循环(抽数抽数)numsi=randNum;/不重复,随机数保存到数组不重复,随机数保存到数组 break whiletag;/结束结束while循环,返回外层循环,返回外层for循环循环 Arrays.sort(nums);/数组元素按升序排序数组元素按升序排序System.out.println(1到到100范围内不重复的范围内不重复的10个随机数:个随机数:);System.out.println(Arrays.toString(nums);第6页,共17页,编辑于2022年,星期
7、日11.3 可变参数方法可变参数方法 类型类型.形参代表形参代表n方法调用时允许给出类型相同但数目不同的参数,例如方法调用时允许给出类型相同但数目不同的参数,例如0个、个、1个、个、2个、个、10个,等等。也可用数组作实参个,等等。也可用数组作实参.n形参代表可看作是一个数组变量。形参代表可看作是一个数组变量。n一个方法只能有一个可变数目参数,并且是最后一个参数。一个方法只能有一个可变数目参数,并且是最后一个参数。第7页,共17页,编辑于2022年,星期日【例【例【例【例11-211-2】定义数目可变参数的方法,进行求和、】定义数目可变参数的方法,进行求和、】定义数目可变参数的方法,进行求和、
8、】定义数目可变参数的方法,进行求和、找最大值。找最大值。找最大值。找最大值。class MethodC /方法类方法类 public static double sum(double.nums)throws Exceptionif(nums.length=0)/可变参数长度即参数个数可变参数长度即参数个数 throw new Exception(没有数据、无法求和异常没有数据、无法求和异常);double sumvalue=0;for(int i=0;inums.length;i+)sumvalue+=numsi;return sumvalue;(1个数之和:个数之和:+MethodC.sum
9、(1);(2个数之和:个数之和:+MethodC.sum(1,2);(3个数之和:个数之和:+MethodC.sum(1,2,3);(以数组作实参求以数组作实参求3个数之和:个数之和:+MethodC.sum(new double1,2,3);第8页,共17页,编辑于2022年,星期日【例【例【例【例11-311-3】编程,定义抽奖方法进行抽奖。】编程,定义抽奖方法进行抽奖。】编程,定义抽奖方法进行抽奖。】编程,定义抽奖方法进行抽奖。/4个参数抽号方法:起始号、终止号、抽取个数、排除号码个参数抽号方法:起始号、终止号、抽取个数、排除号码(可变参数可变参数)public static int r
10、affleNums(int from,int to,int amount,int.exclusion)throws Exception /在类在类Raffle 中定义中定义 if(to-from+1)-exclusion.length amount)throw(抽取范围内的数量必须不小于要抽取的个数抽取范围内的数量必须不小于要抽取的个数);Random rand=new Random();int nums=new intamount;for(int i=0;iamount;i+)whiletag:while(true)/抽取抽取from到到to之间不重复随机数之间不重复随机数 int rand
11、Num=rand.nextInt(to-from+1)+from;for(int j=0;ji;j+)/与已有随机数比较与已有随机数比较 if(randNum=numsj)/如果有重复,如果有重复,continue whiletag;/则继续则继续while循环循环(抽数抽数)for(int k=0;kexclusion.length;k+)/比较排除的号码比较排除的号码 if(randNum=exclusionk)continue whiletag;numsi=randNum;/不重复,保存到数组不重复,保存到数组break whiletag;/结束结束while循环,返回外层循环,返回外层
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 抽奖 随机数 枚举 PPT 讲稿
限制150内