import java.util.Random; //一个大v直播抽奖,奖品是现金红包,分别(2,588,888,1000,10000)五个奖金。 //请使用代码模拟抽奖,打印出每一个奖项,奖项的出现顺序要求随机且不重复。 //打印效果如下:888元的奖金被抽出,588元的奖金被抽出,100000元的奖金被抽出 //第一种方式:打乱奖池顺序输出 import java.util.Random; public class Main{ public static void main(String[] args) { int[] arr={2,588,888,1000,10000}; for(int i=0;i<arr.length;i++) { Random rand=new Random(); int randomIndex=rand.nextInt(arr.length); int temp=arr[i]; arr[i]=arr[randomIndex]; arr[randomIndex]=temp; } for(int i=0;i<arr.length;i++) { System.out.println(arr[i]+"元现金被抽出"); } } }
//第二种1方式:创建方法 import java.util.Random; public class Main{ public static void main(String[] args) { int[] num={2,588,888,1000,10000};//存放元素 int[] newNum=new int[num.length];//x新数组为了存放随机除出来的奖金,方便打印 Random rand=new Random(); for(int i=0;i<5;) { int randomIndex=rand.nextInt(num.length); int prize=num[randomIndex];//prize是新数组里面的元素,是为了在方法中做判断 boolean flag=contains(newNum,prize); if(!flag) { newNum[i]=prize; i++; } } for(int i=0;i<newNum.length;i++) { System.out.println(newNum[i]+"元现金被抽出"); } } public static boolean contains(int[]num,int prize)//创建方法来判断随机的数是否在新的数组里面 { for(int i=0;i<num.length;i++) { if(prize==num[i]) return true; } return false; } }