Java 随机数组,生成彩票变量错误
我必须在数组中生成6个小于或等于49的随机数-不允许零。要求用户输入任意6个数字。我需要我的程序来检查输入的每个数字是否等于生成的任何随机数。显示与正确猜测次数相关的消息。如果玩家愿意,可以使用一个循环让玩家再次玩 除了这出戏,我什么都做了。我不知道如何让用户输入yes或noJava 随机数组,生成彩票变量错误,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
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;ji1
范围/可见性仅限于您的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(...