Возвращает количество раз, когда число появляется в массиве? - PullRequest
0 голосов
/ 28 октября 2018

Итак, я делаю кучу упражнений, одно из них просит меня написать метод, которому передается массив с каждым типом слота int.Этот метод должен возвращать количество раз, когда 99 встречается в массиве.Вот что я придумал на лету:

public static int countNum(int[]x)
{
int count = 0;
for (int i = 0; i <= x.length;i++);
{
 if (x[i] == 99)
   count++;
}
return count;
}

В общем, мне просто нужно написать метод.Я на правильном пути?

Ответы [ 2 ]

0 голосов
/ 28 октября 2018
  1. array.length возвращает длину массива, и вы не хотите выполнять итерацию от 0 до length, но от 0 до length - 1.Зачем?Например, если массив [1, 5], то: array.length == 2, array[0] == 1, array[1] == 5, но array[2] выдает java.lang.ArrayIndexOutOfBoundsException (потому что он пытается достичь элемента, которого нет в массиве)

  2. Удалите точку с запятой после оператора for:

    for (int i = 0; i <= x.length;i++);

    (цикл for выполняет операторы, которые идут непосредственно после него, а ";" завершает aоператор. За (...) следует ";" означает, что у вас есть цикл, который ничего не делает x.length раз)

0 голосов
/ 28 октября 2018

Ну, есть две ошибки.
Во-первых: i < x.length; должно быть так или i <= x.length - 1; так, иначе вы выйдете из массива.
Второе:

  for (int i = 0; i <= x.length;i++)**;**
  {
      if (x[i] == 99)
      count++;
  } 

Вам не нужно ; , иначе следующий код будет вне для .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...