使用 if 判斷式與switch敘述來實現
原本是只要使用 switch 敘述並且列出十二個月份要顯示的文字即可
但是這樣程式碼太長了
於是就想到先用 if 判斷式先收斂月份
並用一個內層 if 判斷式來判斷月份的季節
之後再用 switch 敘述來決定要顯示的文字
這個做法是用 AND 與 OR 這兩個邏輯運算子做月份季節的判斷
剩下的請參考程式碼內的註解
以下為程式範例
String str;
BufferedReader buf;
int month,season=0; // 月份與季節
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("請輸入月份: ");
str=buf.readLine();
month=Integer.parseInt(str);
// 收斂輸入數字,將其限制在1~12
if(month<=12 && month>=1){
// 第一個if不使用AND邏輯運算子,因為冬天是12、1、2月
// 並無連續,使用AND會造成其中一邊不成立
// 有鑑於已經透過外層if判斷式將月份收斂
// 因此改用OR邏輯運算子解決這個問題
if(month<=2 || month==12)
season=1;
if(month>=3 && month<=5)
season=2;
if(month>=6 && month<=8)
season=3;
if(month>=9 && month<=11)
season=4;
switch(season){
case 1:
System.out.println("冬天");
break;
case 2:
System.out.println("春天");
break;
case 3:
System.out.println("夏天");
break;
case 4:
System.out.println("秋天");
break;
}
}else{
System.out.println("月份不存在");
}
沒有留言:
張貼留言