案例:
抢红包。
需求:
一个大 V 直播抽奖,奖品是现金红包,分别有{2, 588, 888, 1000, 10000}五个奖金。请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)
888 元的奖金被抽出 |
588 元的奖金被抽出 |
10000 元的奖金被抽出 |
1000 元的奖金被抽出 |
2 元的奖金被抽出 |
代码一:
//抢红包:
//方法一:
package demo01;
import java.util.Random;
public class HelloJava {
public static void main(String[] args) {
//定义一个数组用于存放五个奖金:
int[] array = {2, 588, 888, 1000, 10000};
//打乱数组:
for(int i = 0; i < array.length; i++) {
Random r = new Random();
int index = r.nextInt(array.length);
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
//打印出抽奖结果:
for(int i = 0; i < array.length; i++) {
System.out.println(array[i] + "元的奖金被抽出!");
}
}
}
运行结果一:
代码二:
//抢红包:
//方法二:
package demo01;
import java.util.Random;
public class HelloJava {
public static void main(String[] args) {
int[] array = {2, 588, 888, 1000, 10000};
int[] newArray = new int[array.length];
for(int i = 0; i < array.length; ) {
Random r = new Random();
int randomIndex = r.nextInt(array.length);
int prize = array[randomIndex];
boolean result = exist(newArray, prize);
if(!result) {
newArray[i] = prize;
i++;
}
}
for(int i = 0; i < newArray.length; i++) {
System.out.println(newArray[i] + "元的奖金被抽中!");
}
}
public static boolean exist(int[] newArray, int prize) {
for(int i = 0; i < newArray.length; i++) {
if(newArray[i] == prize) {
return true;
}
}
return false;
}
}
运行结果二: