2017-09-27 69 views
-1

我得到了一个代码,它是一个数组,可以容纳多达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); 

这里是正确的输出

enter image description here

应该显示7 1,但它显示为0。我不知道哪里出了错误,我做。感谢您的建议和建议。

+1

你在'inputInt'中输入一个整数。那么在那之后你会用'inputInt'做些什么? – ajb

+3

你的循环中绝对没有条件逻辑,如果你没有比较任何东西,你期望如何找到一个数字? – Rafael

+2

请缩进您的代码。这样阅读是非常困难的。 – shmosel

回答

1

初始化数组(由@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

拉斐尔;感谢您的建议;现在我能够在研究(很多)和测试之后克服我的问题;这是调试,调试和调试... –