Я пытаюсь ввести двойное значение от 1 до 100 в массив через try catch - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь сохранить пользовательский ввод в массив, который должен быть числом с диапазоном 1-100. Требуется, чтобы я использовал try catch для обработки исключений, но у меня очень мало опыта с try catch и я потратилчасами пытаюсь определить, где разместить заявления.Я столкнулся с ошибкой, когда программа завершится, если пользователь вводит письмо.Я бы хотел, чтобы программа продолжалась до тех пор, пока не будут введены 2 действительных числа.

public static void main(String []args)
{

Сканирование сканера = новый сканер (System.in);

System.out.println ("Ввести рейтинги из группы фокусировки для фильма:");

попробуй {

  double sumFocus = 0;
  double[] arrayFocus = new double[2];

  for (int i=0; i<2; i++)
  {
      arrayFocus[i] = scan.nextDouble();
  }
  for( double num : arrayFocus) {
      sumFocus = sumFocus+num;
    }
}

catch(InputMismatchException e){



    System.out.println("Invalid input");
}

1 Ответ

0 голосов
/ 30 ноября 2018

Ваше размещение проб и ловушек слишком широкое.Вы должны сузить его, чтобы он соответствовал вашему циклу, так как вы хотите, чтобы цикл продолжался до тех пор, пока у вас не будет двух хороших значений.Учтите следующее:

  double sumFocus = 0;
  double[] arrayFocus = new double[2];

  for (int i=0; i<2; i++) {
      try {
        arrayFocus[i] = scan.nextDouble();
      }
      catch(InputMismatchException e) {
        System.out.println("Invalid input: %s", scan.next());
        i--;
      }
  }

  for (double num : arrayFocus) {
      sumFocus = sumFocus+num;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...