下面我們來了解一下十二星座對應的日期劃分範圍。
白羊: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
您的星座是:天蠍座