簡體   English   中英

如何將大量嵌套的if-else語句轉換為哨兵控制的while循環?

[英]How can one convert numerous nested if-else statements into a sentinel-controlled while loop?

我在我所在的實驗室中由哨兵控制的循環結構中遇到了麻煩。我應該制定一個程序來確定一年是a年還是常規年。 到目前為止,我的教授說我具有布爾邏輯並且輸入還可以,但是我不知道如何設置一個哨兵控制的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");
    }
}

您有多種解決方案,最適合您的情況是do..while語句:

do
{
  // your code
}
while (condition); // condition to keep looping: input year not zero

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM