Очень новое для программирования. Я знаю, что этот вопрос будет очень легко ответить опытным программистам. Я хотел бы продолжить выполнение этой программы, которая находит високосные годы, пока пользователь не войдет в «n». Программа заканчивается перед входом в y/n. Помощь очень ценится ... спасибо.Проблема с циклом while и сканером java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String another = "y";
Scanner scan = new Scanner(System.in);
System.out.print("Please enter a year ");
int year = scan.nextInt();
while (another.equals("y")) {
if (year < 1582) {
System.out.println("Not an established Gregorian year.");
} else if (year % 4 != 0 || (year % 100 == 0 && year % 400 != 0)) {
System.out.println("Not a leap year");
} else {
System.out.println("Leap year!");
}
System.out.println();
System.out.print("Test another year (y/n)?");
another = scan.nextLine();
}
}
}
Итак, в чем вопрос? – Mureinik
отредактирован, чтобы более четко отразить проблему. – garserdt216
Выражение scan.nextInt() потребляло int с клавиатуры, но оставило \ n позади. Итак, когда выполняется вызов scan.nextLine(), он получает пустую строку (которая не равна «y»). Следовательно, ваша петля выходит. Существует также вторая проблема, требующая исправления. Вызов scan.nextInt() должен находиться внутри цикла, а не снаружи. – LIProf