Уважаемые разработчики задания, а вы в курсе, что эталонное решение не правильное? ) Смотрите, сначала нужно согласно здравого смысла и вашего условия проверять вводимую переменную на предмет того, что она больше нуля. И это логично - размер массива не может быть нулевым или отрицательным. То есть, хотя бы нужно сделать вот так: Scanner console = new Scanner(System.in); int n=0; while (n<=0){ n = console.nextInt(); } Но, у вас весь ввод первой переменной это: int n = Integer.parseInt(scanner.nextLine()); Соответственно, ничего не проверяется. С вашим набором введенных параметров это работает. Но, для разнообразия, в вашем примере меняем первое число на отрицательное - и все падает.