我正在尝试为我的课程完成这段代码,但是我无法使这部分起作用。
我需要将三个输入数字与三个随机数字进行比较,在运行代码时,将输入放入后,即使某些数字匹配,唯一打印出来的就是else语句。< / p>
for(int x=0; x<=array.length - 1; x++) {
if(array[0] == Rand[0] && array[1] == Rand[1] && array[2] == Rand[2]) {
System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
System.out.println("You won $1000!");
break;
} else if(array[x] == Rand[0] && array[x] == Rand[1] && array[x] == Rand[2]) {
System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
System.out.println("You won $100");
break;
} else if(array[x] == Rand[0] && array[x] == Rand[1] ||
array[x] == Rand[1] && array[x] == Rand[2] ||
array[x] == Rand[0] && array[x] == Rand[2]) {
System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
System.out.println("You won $30!");
break;
} else if(array[x] == Rand[0] || array[x] == Rand[1] || array[x] == Rand[2]) {
System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
System.out.println("You won $5");
} else {
System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
System.out.println("You won nothing");
break;
}
}
答案 0 :(得分:1)
如果您获得1个比赛($ 5)2个比赛(30)3个乱序($ 100)和3个乱序($ 1000)
因此,假设array
和rand
的长度相同,并且rand
中的所有数字都不相同(所以没有1, 1, 5
左右)。
然后您将检查以下内容:
array
和rand
中的元素。如果您都符合条件,则用户会依次猜出3。array
中的每个元素与rand
中的每个元素进行比较,然后计算匹配数。然后,该数字会告诉您用户是否赢得了0、5、30或100美元。请注意,我故意不发布任何代码,因为该代码是“针对您的班级”的,因此您的任务是实际编写代码并从中学到一些东西。
修改
在您的评论中,您声明3个随机数可能都相同。这将需要您做一些不同的事情。一种方法可能是拥有rand
的临时副本,当找到匹配项时,就从该副本中“删除”元素(例如,如果rand
是int[]
数组,则可以设置与-1
匹配的元素,并将array
的元素与rand
的元素进行比较时,您会忽略任何值为-1)的元素。
使用列表可能会更容易(例如,您实际上删除了所有匹配项),但我认为您尚未了解这些匹配项。
答案 1 :(得分:0)
尝试这种计算两个ArrayList中匹配的数字的方法 (工作尚不完整,您可以完成):
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Random rn = new Random();
int max=1000;
int min=10;
ArrayList<Integer>random=new ArrayList<>();
for (int i=0;i<3;i++){
random.add(rn.nextInt(max - min + 1) + min);
System.out.println(random.get(i));
}
ArrayList<Integer>array=new ArrayList<>();
for (int i=0;i<3;i++){
array.add(input.nextInt());
}
int count=0;
for (int i=0; i<3; i++){
for (int j=0; j<3; j++){
if (random.get(i).equals(array.get(j)))
count++;
}
}
System.out.println(count);
}
在这种方法中,我在array
中接受3个输入,并在random
中产生10至1000之间的3个随机数(当然,您可以通过更改min
和{ {1}})
在检查了匹配的条目数并在max
中进行计数后,您可以在count
结构中使用该计数来提供奖品。例如if-else
或其他。您可以添加检查,以便随机数是唯一的,并且计数值是准确的。