Java 只比较数组的最后一个值
我正在做一个简单的彩票游戏。如果我猜对了数字,我仍然会得到失败的结果,除非这是我猜到的最后一个数字。如何将randnum与输入的所有数字进行比较?如果只需要一个randnum,请将randnum的定义从for循环中去掉。一旦找到匹配项,您就可以打破循环Java 只比较数组的最后一个值,java,Java,我正在做一个简单的彩票游戏。如果我猜对了数字,我仍然会得到失败的结果,除非这是我猜到的最后一个数字。如何将randnum与输入的所有数字进行比较?如果只需要一个randnum,请将randnum的定义从for循环中去掉。一旦找到匹配项,您就可以打破循环 import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) {
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int randnum = 0;
boolean lose = false;
Random gen = new Random();
Scanner scan = new Scanner(System.in);
System.out.println("Enter desired numbers to be drawn");
int print = scan.nextInt();
System.out.println("Enter desired numbers on dice");
int dice = scan.nextInt();
System.out.println("Enter your lucky numbers");
int[] numbers = new int[print]; // int and print rhyme
for(int i=0; i<print;i++){
numbers[i] = scan.nextInt();
}
for(int counter=1; counter<=print;counter++){
randnum = 1+gen.nextInt(dice);
System.out.println(randnum + " ");
System.out.println();
if (randnum == numbers[counter - 1]){
lose = false;
} else {
lose = true;
}
if (lose == true){
System.out.println("Bad luck!");
}
if (lose == false){
System.out.println("Winner winner chicken dinner!");
}
}
}
}
确保将lose初始化为true
for(int counter = 1; counter <= print; counter++){
randnum = 1 + gen.nextInt(dice);
System.out.println(randnum + " ");
System.out.println();
for(int i = 1; i <= print; i++){
if (lose == false){
break;
}
if (randnum == numbers[i - 1]){
lose = false;
break;
} else {
lose = true;
}
}
}
您需要将其余的if语句从for循环中去掉
你的代码应该做什么?你的问题是什么?你期望什么样的产出?你得到了什么输出?有什么错误?你试过什么?调试时发生了什么?如果其中一个猜测是正确的,程序应该显示获胜消息,或者如果所有的猜测都是正确的?如果至少有一个是正确的,那么你应该得到获胜的消息,但是当我运行代码时,只有当你得到最后一个输入的数字时,你才能获胜。因此,你生成随机数的打印数,如果你的一个猜测与其中一个随机数匹配,则显示获胜消息。对吗?或者你只是想要一个随机数来尝试猜测?是的,如果其中一个猜测匹配,那么你就赢了。谢谢,它现在可以工作了。我之前评论过:你想要一个随机数,还是想要打印随机数?如果print是4,你想把输入的值和一个randnum比较,还是和四个不同的randnum比较?是的,我知道了。我想要4个不同的RandNum然后你必须使用第二个,有两个循环。它不一致。我猜对了数字,有时我得到了胜利的结果,有时我得到了失败的结果
for(int counter = 1; counter <= print; counter++){
randnum = 1 + gen.nextInt(dice);
System.out.println(randnum + " ");
System.out.println();
for(int i = 1; i <= print; i++){
if (lose == false){
break;
}
if (randnum == numbers[i - 1]){
lose = false;
break;
} else {
lose = true;
}
}
}
boolean lose = true;
if (lose == true){
System.out.println("Bad luck!");
}
if (lose == false){
System.out.println("Winner winner chicken dinner!");
}