Java 随机数组,生成彩票变量错误

Java 随机数组,生成彩票变量错误,java,arrays,Java,Arrays,我必须在数组中生成6个小于或等于49的随机数-不允许零。要求用户输入任意6个数字。我需要我的程序来检查输入的每个数字是否等于生成的任何随机数。显示与正确猜测次数相关的消息。如果玩家愿意,可以使用一个循环让玩家再次玩 除了这出戏,我什么都做了。我不知道如何让用户输入yes或no import java.util.Arrays; import javax.swing.*; import java.util.Scanner; class LuckyTask2{ public static vo

我必须在数组中生成6个小于或等于49的随机数-不允许零。要求用户输入任意6个数字。我需要我的程序来检查输入的每个数字是否等于生成的任何随机数。显示与正确猜测次数相关的消息。如果玩家愿意,可以使用一个循环让玩家再次玩

除了这出戏,我什么都做了。我不知道如何让用户输入yes或no

    import java.util.Arrays;
import javax.swing.*;
import java.util.Scanner;
class LuckyTask2{
public static void main(String args[]){

// TASK 2 
//boolean play = true;
//
//while(play == true){
//    Scanner input = new Scanner(System.in);

int lucky1,lucky2,lucky3,lucky4,lucky5,lucky6,number=0;
int j;
int Data[] = new int [6];
for(j=0; j<Data.length;++j){
Data[j] = (int) (Math.random() * 49);
//System.out.println(Data[j]);
int playagain=0;
}
do{

String input2 = JOptionPane.showInputDialog("Please enter your lucky number between 1 and 49.");
lucky1=Integer.parseInt(input2);

String input3 = JOptionPane.showInputDialog("Please enter your second lucky number between 1 and 49.");
lucky2=Integer.parseInt(input3);

String input4 = JOptionPane.showInputDialog("Please enter your third lucky number between 1 and 49.");
lucky3=Integer.parseInt(input4);

String input5 = JOptionPane.showInputDialog("Please enter your fourth lucky number between 1 and 49.");
lucky4=Integer.parseInt(input5);

String input6 = JOptionPane.showInputDialog("Please enter your fifth lucky number between 1 and 49.");
lucky5=Integer.parseInt(input6);

String input7 = JOptionPane.showInputDialog("Please enter your sixth lucky number between 1 and 49.");
lucky6=Integer.parseInt(input7);


for(j = 0; j< Data.length; j++){

if(Data[j]==lucky1){
number=number+1;
}
if(Data[j]==lucky2){
number=number+1;
}
if(Data[j]==lucky3){
number=number+1;
}
if(Data[j]==lucky4){
number=number+1;
}
if(Data[j]==lucky5){
number=number+1;
}
if(Data[j]==lucky6){
number=number+1;
} }

if(number==0){
System.out.println("Unfortunately, none of your numbers were winning numbers. Better luck next time!");
}
if(number==1){
System.out.println("One of your numbers was a  winning number. You win a free play!");
}
if(number==2){
System.out.println("Two of your numbers were winning numbers. You win $10");
}
if(number==3){
System.out.println("Three of your numbers were winning numbers. You win a share of 4.25% of Pools Fund");
}
if(number==4){
System.out.println("4 of your numbers were winning numbers. You win a share of 3.35% of Pools Fund");
}
if(number==5){
System.out.println("5  of your numbers were winning numbers.You win Share of 3.15% of Pools Fund");
}
if(number==6){
System.out.println("WOW! Congrats! All of your numbers were winning numbers. You win win or share Jackpot of at least $10 Million (89.25% of Pools Fund)");
}

//    System.out.println("Do you want to play again? (Yes/No)");
//    String playagain = input.nextLine();
//    if (playagain == "Yes")
//       play = true;
//    else
//       play = false;

}}
导入java.util.array;
导入javax.swing.*;
导入java.util.Scanner;
类幸运任务2{
公共静态void main(字符串参数[]){
//任务2
//布尔播放=真;
//
//while(play==true){
//扫描仪输入=新扫描仪(System.in);
int-lucky1,lucky2,lucky3,lucky4,lucky5,lucky6,number=0;
int j;
整数数据[]=新整数[6];

for(j=0;j
i1
范围/可见性仅限于您的
for
循环和所有
if
语句都在for循环的外部,因为您在for循环的内部声明了i1。请尝试在其外部声明它;例如

int i1 = 0;
for(i1=0;...
希望这有帮助

编辑:

for(i1=0;i1

然后继续此操作。

i1仅存在于for循环的作用域中。@Mathemats我现在将i1声明为循环外的整数,现在它一直要求用户输入“请输入一个介于1-49之间的数字”。输入六个数字后,我得到一个错误:线程“main”中出现异常java.lang.ArrayIndexOutOfBoundsException:6现在它一直要求用户输入“请输入一个介于1-49之间的数字”。输入六个数字后,我得到一个错误:线程“main”中出现异常java.lang.ArrayIndexOutOfBoundsException:6我认为这是因为当您查看Data1数组时,您从值6开始,因为这是从for循环(i1)返回的值。将i1重置为零,同时生成另一个包含if语句块的for循环。我稍微编辑了我的答案以显示这一点,这没关系:-)如果你能投票,那就太好了,这会在类似的问题上帮助其他人。另外,我还可以发表评论>:(我现在在循环外声明i1是一个整数,现在它一直要求用户输入“请输入1-49之间的数字”。在我输入六个数字后,我得到一个错误:线程“main”中出现异常java.lang.ArrayIndexOutofBounds异常:6
for(i1 = 0; i1 < Data1.length; i1++){
    if(Data1[i1] = lucky1)
        same++;
    if(...