文章目錄
- 一、練習題目
- 二、使用 switch 語句實現代碼
- 三、將代碼改寫回 if else 的選擇結構
一、練習題目
編寫 Java 程序,輸入年份和月份,使用 switch 結構計算對應月份的天數。
月份為 1、3、5、7、8、10、12 時,天數為 31 天。
月份為 4、6、9、11 時,天數為 30 天。
月份為 2 時,若為閏年,天數為 29 天,否則,天數為 28 天。
要求實現程序如下圖所示:
二、使用 switch 語句實現代碼
我們使用 switch 語句實現代碼如下:
package rjxy2019_java_demo;import java.util.Scanner;public class SwitchWithDays {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("Please enter a year:");int year = input.nextInt();System.out.println("Please enter a month:");int month = input.nextInt();int day = 0;boolean isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));switch(month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:if(isLeapYear == true) day = 29;else day = 28;break;default:System.out.println("Error:invalid input");System.exit(1);}System.out.println(year + "年" + month + "月一共" + day + "天");}
}
驗證,當輸入為 2009 年 2 月時,如下圖所示:
說明:System.exit(status)
是在System
類中定義的,調用這個方法可以終止程序。
參數status
為 0 表示程序正常結束。一個非 0 的狀態代碼表示非正常結束。
例如,我們輸入月份為 13 時,程序終止并輸出報錯信息,如下圖所示:
三、將代碼改寫回 if else 的選擇結構
我們將代碼改寫回 if else 的選擇結構,代碼如下:
package rjxy2019_java_demo;import java.util.Scanner;public class IfElseWithDays {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("Please enter a year:");int year = input.nextInt();System.out.println("Please enter a month:");int month = input.nextInt();int day = 0;boolean isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month ==12) day = 31;else{if(month == 4 || month == 6 || month == 9 || month == 11) day = 30;else {if(month == 2) {if(isLeapYear == true) day = 29;else day = 28;}else {System.out.println("Error:invalid input");System.exit(1);}}}System.out.println(year + "年" + month + "月一共" + day + "天");}
}
輸出結果無誤,如下圖所示:
我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!