Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 只比较数组的最后一个值_Java - Fatal编程技术网

Java 只比较数组的最后一个值

Java 只比较数组的最后一个值,java,Java,我正在做一个简单的彩票游戏。如果我猜对了数字,我仍然会得到失败的结果,除非这是我猜到的最后一个数字。如何将randnum与输入的所有数字进行比较?如果只需要一个randnum,请将randnum的定义从for循环中去掉。一旦找到匹配项,您就可以打破循环 import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) {

我正在做一个简单的彩票游戏。如果我猜对了数字,我仍然会得到失败的结果,除非这是我猜到的最后一个数字。如何将randnum与输入的所有数字进行比较?

如果只需要一个randnum,请将randnum的定义从for循环中去掉。一旦找到匹配项,您就可以打破循环

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!");
}