Эта проблема вызвана из-за метода nextInt()
.
Здесь происходит то, что метод nextInt()
использует целое число, введенное пользователем, но не символ новой строки в конце пользовательского ввода, которыйсоздается при нажатии клавиши enter .
Поэтому, когда вы нажимаете , введите после ввода целого числа, следующий вызов nextLine()
потребляет символ новой строки, который не использовался в последней итерации цикла методом nextInt()
,Вот почему он пропускает ввод String
на следующей итерации цикла и не ждет, пока пользователь введет String
Solution
Вы можете использовать символ новой строки, позвонив nextLine()
после nextInt()
call
for(i = 0; i < n; i++)
{
System.out.println("Enter String" + (i + 1) + ":");
sentence[i] = scan.nextLine();
System.out.printf("Enter int " + (i + 1) + ":");
numbers[i] = scan.nextInt();
scan.nextLine(); // <------ this call will consume the new line character
}