[英]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.