import java.util.Random; public class Test12 { public static void main(String[] args) { /*需求:一个大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}五个奖金。 请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。 打印效果如下:(随机顺序,不一定是下面的顺序) 888元的奖金被抽出 588元的奖金被抽出 10000元的奖金被抽出 1000元的奖金被抽出 2元的奖金被抽出 */ int[] raffle={2,588,888,1000,10000}; int[] temp=new int[raffle.length]; getRaffle(raffle,temp); } public static void getRaffle(int[] raffle, int[] temp){ Random r = new Random(); int count=0; while(count<=5) { int ran=r.nextInt(raffle.length); if(temp[ran]==raffle[ran]){ continue; } else { temp[ran]=raffle[ran]; System.out.println(raffle[ran]+"元的奖金被抽出"); count++; } } } }
时间: 2024-02-10 18:07:54 浏览: 104
这是一个Java代码模拟抽奖过程,实现了大V直播抽奖的功能。代码中定义了一个整型数组`raffle`,包含了五个不同金额的奖金;以及一个整型数组`temp`,用于记录已经被抽中的奖金。`getRaffle`方法通过随机数来实现抽奖,并在控制台输出每个奖项,保证了奖项的顺序是随机的且不重复的。
具体实现过程如下:
```java
import java.util.Random;
public class Test12 {
public static void main(String[] args) {
int[] raffle = {2, 588, 888, 1000, 10000};
int[] temp = new int[raffle.length];
getRaffle(raffle, temp);
}
public static void getRaffle(int[] raffle, int[] temp) {
Random r = new Random();
int count = 0;
while (count < 5) {
int ran = r.nextInt(raffle.length);
if (temp[ran] == raffle[ran]) {
continue;
} else {
temp[ran] = raffle[ran];
System.out.println(raffle[ran] + "元的奖金被抽出");
count++;
}
}
}
}
```
在这个实现中,我们通过一个while循环来进行抽奖的过程,每次循环从`raffle`数组中随机选取一个下标,如果这个下标对应的奖金已经被抽中了,就重新随机一个下标;如果没有被抽中,则将这个奖金放入`temp`数组中,并在控制台输出该奖项。直到抽中了五个奖项为止。
阅读全文