Эта программа запрашивает у пользователя целое число. Если пользователь не вводит целое число, он запрашивает снова, пока они не введут. Как только целое число введено, оно печатает «CS115» пять раз.
public static void main(String[] args) {
String CS115 = "Hello CS115";
Scanner scan = new Scanner ( System.in );
System.out.print("Enter an integer: ");
int correctInput = scan.nextInt();
while(!scan.hasNextInt()) {
System.out.println("Try again > ");
scan.next();
}
for (int i = 1; i <= correctInput; i++) {
System.out.println(CS115);
}
}
По какой-то причине я поместил объявление correctInput после цикла while и перед циклом for, и это сработало (см. Ниже). Но я не понимаю, почему то, что у меня есть выше, не сработает. Если я введу 3 например, ничего не происходит. Если я снова введу 3, я получу желаемый результат.
Я подозреваю, что когда я ввожу 3, correctInput назначается 3, а цикл while игнорируется. Я понимаю эту часть, я верю. Но почему цикл for не будет выполняться с этим значением correctInput? Программа просто завершается, пока я не введу значение во второй раз. После второй записи запускается цикл for. Что здесь происходит?
public static void main(String[] args) {
String CS115 = "Hello CS115"
Scanner scan = new Scanner ( System.in );
System.out.print("Enter an integer: ");
while(!scan.hasNextInt()) {
System.out.println("Try again > ");
scan.next();
}
int correctInput = scan.nextInt();
for (int i = 1; i <= correctInput; i++) {
System.out.println(CS115);
}
}