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