查找数组的索引-java
问题描述:
我得到了一个代码,它是一个数组,可以容纳多达8个随机生成的整数值,数值为 之间的数字;接下来,它会要求用户输入一个数字。在输入之后,它会查找用户输入数字的数组的位置。接下来,只要数组中的第一个数字与输入数字相匹配,算法将停止并显示该位置。相反,如果找不到该值,则只显示未找到的值。查找数组的索引-java
这是代码;
import java.util.Scanner;
import java.util.Random;
public class q3_2 {
static Random generator = new Random();
static Scanner input = new Scanner(System.in);
public static void main(String[] args){
int[] number = new int [8];
Random randomGenerator = new Random();
for (int idx = 0 ; idx < number.length ; ++idx){
int randomInt = randomGenerator.nextInt(50)+1;
System.out.print(randomInt + " ");
}
System.out.println();
System.out.println("your input please: ");
int inputInt;
inputInt = input.nextInt();
int idxToFind = -1;
for (int idx = 0 ; idx < number.length ; ++idx){
idxToFind= idx;
break;
}
System.out.println(inputInt + " is on the " + idxToFind);
这里是正确的输出
应该显示7 1,但它显示为0。我不知道哪里出了错误,我做。感谢您的建议和建议。
答
初始化数组(由@AJB指出的),并添加条件逻辑
for (int idx = 0 ; idx < number.length ; ++idx){
int randomInt = randomGenerator.nextInt(50)+1;
number[idx] = randomInt;//INITIALIZED
System.out.print(randomInt + " ");
}
...
for (int idx = 0 ; idx < number.length ; ++idx){
if (number[idx] == idxToFind) {
idxToFind= idx;
break;
}
}
或者,你可以使用indexOf
,但问之前,你应该做更多的研究这种问题。看起来你正在从一项家庭作业中轻松地完成任务。
+0
拉斐尔;感谢您的建议;现在我能够在研究(很多)和测试之后克服我的问题;这是调试,调试和调试... –
你在'inputInt'中输入一个整数。那么在那之后你会用'inputInt'做些什么? – ajb
你的循环中绝对没有条件逻辑,如果你没有比较任何东西,你期望如何找到一个数字? – Rafael
请缩进您的代码。这样阅读是非常困难的。 – shmosel