Как можно преобразовать многочисленные вложенные операторы if-else в контролируемый дозором цикл while?

У меня проблемы с контролируемой дозорной структурой лаборатории, в которой я нахожусь. Я должен составить программу, которая может определить, является ли год високосным или регулярным. До сих пор мой профессор говорил, что у меня есть логическая логика и входные данные в порядке, но я не знаю, как установить контролируемый цикл while, который будет запрашивать ввод, пока пользователь не предоставит программе значение, которое запускает команду EOF и завершает программу

import java.util.Scanner;

public class LeapYear {
    public static void main(String[] args) {  
        Scanner S = new Scanner(System.in);
        System.out.println("Enter a year (0 to end)?");
        int year = S.nextInt();
        if (year > 1752) {
            if (((year%4)== 0) && ((year%100)==0) && ((year%400)==0)) {
                System.out.print("Leap Year");
            } else if (((year%4)== 0) && ((year%100)==0) && ((year%400)!=0)) {
                System.out.println("Regular Year");
            } else if ((year%4)== 0) {
                System.out.print("Leap Year");
            }
            else 
                System.out.print("Regular Year");
        }
        else 
            System.out.print ("Please enter a year after 1752");
    }
}

1 ответ

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

do
{
  // your code
}
while (condition); // condition to keep looping: input year not zero
Другие вопросы по тегам