Java 数组中的随机数,用户输入的数字。如果出现在数组中,则用户获得点数

Java 数组中的随机数,用户输入的数字。如果出现在数组中,则用户获得点数,java,arrays,input,Java,Arrays,Input,我知道如何创建数组,如下所示。但是我如何检查用户是否输入了相同的号码呢。我尝试使用if语句,但不断出错。我还试着用了一段时间。 我必须编写一个程序,在数组数据[]中生成并存储20个随机数,并要求用户输入我所做的猜测。如果他们的数字出现在数组中,则每次出现他们都会得到2分,并打印数组和所有可以找到幸运数字的位置。如果它没有出现在数组中,我必须打印数组的最低值和最高值,并且只允许再试一次。如果球员第二次做对了,他们每次出场都得1分 int lucky; int Data[]= new int[20]

我知道如何创建数组,如下所示。但是我如何检查用户是否输入了相同的号码呢。我尝试使用if语句,但不断出错。我还试着用了一段时间。 我必须编写一个程序,在数组数据[]中生成并存储20个随机数,并要求用户输入我所做的猜测。如果他们的数字出现在数组中,则每次出现他们都会得到2分,并打印数组和所有可以找到幸运数字的位置。如果它没有出现在数组中,我必须打印数组的最低值和最高值,并且只允许再试一次。如果球员第二次做对了,他们每次出场都得1分

int lucky;
int Data[]= new int[20];

for(int i=0;i<Data.length;i++){
    Data[i]=(int)(Math.random()*100);
}
for(int i=0;i<Data.length;++i){
    System.out.println(Data[i]+"\t");

}

String input1=JOptionPane.showInputDialog("Enter your lucky number");
lucky=Integer.parseInt(input1);
System.out.println(lucky);

类似的方法应该可以工作,因为您希望看到数组中是否存在该值,可以将其展开以搜索和查找高/低值:

  int counter = 0; //Assume not found at first
    for (int i: Data) {
          if (i==Integer.parseInt(input1)){
                counter++;
          }
    }
    System.out.println("The numer was found "+Integer.toString(counter)+" time(s).");

旁注:如果你给他们看最高和最低的数字,他们就不能猜到自动的1分吗?这也是带标签的Javascript,但是是Java。我对Java不太了解,但它应该有某种indexOf方法,对吗?我想你需要帮助,但我如何检查用户是否输入了相同的数字部分?要获得家庭作业方面的帮助,请包含你尝试过但不起作用的代码。您发布的代码甚至没有尝试搜索数组以查找匹配项。这篇文章显示indexOf@HasseBjork标记现在已经更改。如果这个答案有助于您的话,我将非常感谢接受答案标志。否则给我任何反馈。谢谢。我希望它输出如下内容:如果数组是Data[]={3,1,8,31,25,6,3,20,41,12,3,23,7,3,65,49,5,0,13,17},用户输入3。我希望它输出:3可以在以下位置找到:0 6 10 13。3出现4次。你得到8分,如果他们输入2,则输出:幸运数字2不在数组中!最低值:1最高值:65,如果他们第二次输入正确:即65,那么输出将是:你得到1分!
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int[] data = new int[20];
        int guess;
        int times;
        int score = 0;
        int tries = 0;

        fillArrayWithRandoms(data);

        while (tries < 2) {
            System.out.print("Guess a number: ");
            guess = sc.nextInt();

            if ((times = timesInArray(guess, data)) != 0) {
                if (tries == 0)
                    score += 2 * times;
                else
                    score += times;

                printArray(data);
                fillArrayWithRandoms(data);

                System.out.println("You are lucky! Score: " + score + "\n");
            } else {
                tries++;

                System.out.println("You are unlucky!");

                if (tries < 2)
                    printBoundaries(data);

                System.out.println();
            }
        }

        System.out.println("Game Over! Your score: " + score);
    }

    private static void printArray(int[] data) {
        for (int element : data) {
            System.out.print(element + " ");
        }

        System.out.println();
    }

    private static void fillArrayWithRandoms(int[] data) {
        for (int i = 0; i < data.length; i++) {
            data[i] = (int) (Math.random() * 100);
        }
    }

    private static int timesInArray(int guess, int[] data) {
        int occurrence = 0;

        for (int element : data) {
            if (element == guess)
                occurrence++;
        }

        return occurrence;
    }

    private static void printBoundaries(int[] data) {
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;

        for (int element : data) {
            if (element < min) {
                min = element;
            }

            if (element > max) {
                max = element;
            }
        }

        System.out.println("Try a number between " + min + " and " + max);
    }
}