【发布时间】:2021-03-17 10:48:48
【问题描述】:
我正在制作一个彩票程序,模拟一个人选择 6 个中奖号码并使用方法抽取中奖号码。
这是一个示例输出
Enter your numbers:
25
31
20
8
47
31
The winning numbers are:
48 16 28 38 46 36
0 out of the 6 numbers you chose are winning numbers, better luck next time!
我的问题是查找总匹配数字的方法不起作用,我不知道如何解决它。用户输入的数字和开奖随机数都是数组
这是我的代码:
import java.util.*;
public class Main {
private static boolean[] lottery;
private static boolean[] array;
public static void main(String[] args) {
getUserNumbers();
getRandomNumbers();
getTotalMatchedNumbers();
}
public static void getRandomNumbers(){
int[] lottery = new int[6];
int lotteryNumbers;
for (int i = 0; i < 6; i++) {
lotteryNumbers = (int) (Math.random() * 50);
for (int x = 0; x < i; x++) {
if (lottery[x] == lotteryNumbers)
{
lotteryNumbers = (int) (Math.random() * 50);
x = -1;
}
}
lottery[i] = lotteryNumbers;
}
System.out.println("The winning numbers are: ");
for (int i = 0; i < lottery.length; i++)
System.out.print(lottery[i] + " ");
}
public static void getUserNumbers(){
Scanner scanner = new Scanner(System.in);
int[] array = new int[10];
System.out.println("Enter your numbers: ");
for(int i=0; i < 6; i++){
array[i]=scanner.nextInt();
}
System.out.println("You have entered: ");
for (int i=0; i < 6; i++){
System.out.print(array[i]);
System.out.print(" ");
System.out.println(" ");
}
}
public static void getTotalMatchedNumbers(){
int matched = 0;
for(int i = 0; i < 6; i++){
for(int j = 0;j < 6; j++){
if(lottery[i] == array[j]){
matched = matched + 1;
}
}
if (matched != 6){
System.out.println(matched + " out of the 6 numbers you chose are winning numbers, better luck next time!");
}
else{
System.out.println("You got picked all the winning numbers! You win!");
}
}
}
}
【问题讨论】:
-
乍一看,在您的
getUserNumbers()中,您正在创建一个新的局部变量int[] array,而不是使用您定义的类级变量。getRandomNumbers中的int[] lottery也是如此。 -
您在填写字段时将
lottery和array重新定义为局部变量。改用类的字段。 -
该示例是否输出了您正在获得的、您希望获得的的示例?
标签: java arrays for-loop input methods