【问题标题】:Find the index of the array--java查找数组的索引--java
【发布时间】:2017-09-27 04:01:03
【问题描述】:

我得到了一个代码,它是一个数组,最多可以容纳 8 个随机生成的整数值 数对数;接下来,它会要求用户输入一个数字。输入后,它会找到用户输入数字的数组的位置。接下来,一旦数组中的第一个数字与输入的数字匹配,算法将停止并显示位置。相反,如果找不到该值,则简单地显示 no found。

这里是代码;

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。我不确定我犯的错误在哪里。感谢您的意见和建议。

【问题讨论】:

  • 您在inputInt 中输入了一个整数。在那之后你在哪里处理inputInt
  • 您的循环中绝对没有条件逻辑,如果您不进行任何比较,您如何期望找到一个数字?
  • 请缩进您的代码。这样读起来很难。

标签: java arrays search location


【解决方案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,但在提出此类问题之前您应该做更多的研究。看起来您正在轻松完成家庭作业。

【讨论】:

  • 拉斐尔;感谢您的建议;现在我能够在研究(很多)和测试之后克服我的问题;这是调试,调试和调试......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
相关资源
最近更新 更多