下面我們來了解一下十二星座對應的日期划分范圍。
白羊:0321~0420 天秤:0924~1023 金牛:0421~0521 天蠍:1024~1122 雙子:0522~0621 射手:1123~1221 巨蟹:0622~0722 摩羯:1222~0120 獅子:0723~0823 水瓶:0121~0219 處女:0824~0923 雙魚:0220~0320
例如,出生日期為 0609(6 月 9 號),則對應的是雙子座。
根據上述描述,在程序中需要用戶輸入一個 4 位數字,再根據這個數字所處的范圍進行判斷,其中前兩位是月份,后兩位是日期。這里我們分別用 if else 語句和 switch 語句實現,希望讀者自己運行,以便更好的掌握 if else 和 switch 的區別和適用場景。
switch實現計算星座功能
在這里使用 switch 語句判斷出生的月份,然后根據日期確定星座名稱。
實現代碼如下:
public static void main(String[] args) { System.out.println("請輸入您的出生年月(如 0123 表示 1 月 23 日):"); Scanner sc = new Scanner(System.in); int monthday = sc.nextInt(); int month = monthday/100; int day = monthday%100; String xingzuo = ""; switch (month) { case 1: xingzuo = day<21?"摩羯座":"水瓶座"; break; case 2: xingzuo = day<20? "水瓶座":"雙魚座"; break; case 3: xingzuo = day<21?"雙魚座":"白羊座"; break; case 4: xingzuo = day<21?"白羊座":"金牛座"; break; case 5: xingzuo = day<22?"金牛座":"雙子座"; break; case 6: xingzuo = day<22?"雙子座":"巨蟹座"; break; case 7: xingzuo = day<23?"巨蟹座":"獅子座"; break; case 8: xingzuo = day<24?"獅子座":"處女座"; break; case 9: xingzuo = day<24?"處女座":"天秤座"; break; case 10: xingzuo = day<24?"天秤座":"天蠍座"; break; case 11: xingzuo = day<23?"天蠍座":"射手座"; break; case 12: xingzuo = day<22?"射手座":"摩羯座"; break; } System.out.println("您的星座是:" +xingzuo); }
上述代碼中, 首先聲明變量 monthday 保存用戶輸入的信息,然后用 month 和 day 變量分別表示月份和日期。接下來 switch 語句根據月份判斷執行 case 子句中的代碼,在每個 case 子句中,使用三元運算符根據日期判斷所屬的星座。
最終運行效果如下所示:
請輸入您的出生年月(如 0123 表示 1 月 23 日): 0521 您的星座是:金牛座
請輸入您的出生年月(如 0123 表示 1 月 23 日): 1109 您的星座是:天蠍座
if-else 實現計算星座功能
在這里我們使用嵌套 if,與 switch 一樣首先判斷出生的月份,然后根據日期確定星座名稱。
實現代碼如下所示:
public static void main(String[] args) { System.out.println("請輸入您的出生年月(如 0123 表示 1 月 23 日):"); Scanner sc = new Scanner(System.in); int monthday = sc.nextInt(); int month = monthday / 100; int day = monthday % 100; String xingzuo = ""; if (month == 1) { if (day < 21) { xingzuo = "摩羯座"; } else { xingzuo = "水瓶座"; } } else if (month == 2) { if (day < 20) { xingzuo = "水瓶座"; } else { xingzuo = "雙魚座"; } } else if (month == 3) { if (day < 21) { xingzuo = "雙魚座"; } else { xingzuo = "白羊座"; } } else if (month == 4) { if (day < 21) { xingzuo = "白羊座"; } else { xingzuo = "金牛座"; } } else if (month == 5) { if (day < 22) { xingzuo = "金牛座"; } else { xingzuo = "雙子座"; } } else if (month == 6) { if (day < 22) { xingzuo = "雙子座"; } else { xingzuo = "巨蟹座"; } } else if (month == 7) { if (day < 23) { xingzuo = "巨蟹座"; } else { xingzuo = "獅子座"; } } else if (month == 8) { if (day < 24) { xingzuo = "獅子座"; } else { xingzuo = "處女座"; } } else if (month == 9) { if (day < 24) { xingzuo = "處女座"; } else { xingzuo = "天秤座"; } } else if (month == 10) { if (day < 24) { xingzuo = "天秤座"; } else { xingzuo = "天蠍座"; } } else if (month == 11) { if (day < 23) { xingzuo = "天蠍座"; } else { xingzuo = "射手座"; } } else if (month == 12) { if (day < 22) { xingzuo = "射手座"; } else { xingzuo = "摩羯座"; } } System.out.println("您的星座是:" + xingzuo); }
我們輸入和上邊一樣的日期,運行結果如下:
請輸入您的出生年月(如 0123 表示 1 月 23 日): 0521 您的星座是:金牛座 請輸入您的出生年月(如 0123 表示 1 月 23 日): 1109 您的星座是:天蠍座