为什么在数组中查找索引不起作用

时间:2019-12-05 09:55:33

标签: java arrays

我想确定键值是否在数组..中,但是它不起作用..

class Solution {
  public int solution(int key, int[] array1) {
      int answer = 0;
      for(int i=0; i < array1.length; i++) {
          if(array1[i] == key) {
              answer = i;
          }
          else return -1;
      }
      return answer;
  }
}

ex)键:5个array1:[1、2、3、4、5]         答案:4

3 个答案:

答案 0 :(得分:2)

找到匹配项或完成循环而没有找到匹配项时,您应该返回答案。

如果数组的第一个元素与您的键不匹配,则应该返回-1。您应该先检查数组的所有其他元素。

  public int solution(int key, int[] array1) {
      for(int i=0; i < array1.length; i++) {
          if(array1[i] == key) {
              return i;
          }
      }
      return -1;
  }

答案 1 :(得分:0)

我认为您需要键的索引作为输出,并且随着数组的索引从0开始,您正在正确地获取它。 键为5的索引是4,这是正确的。

答案 2 :(得分:0)

您应该将return置于循环之外:

class Solution {
  public int solution(int key, int[] array1) {
      int answer = -1;
      for(int i=0; i < array1.length; i++) {
          if(array1[i] == key) {
              answer = i;
          }
      }
      return answer;
  }
}