[ Java習題 ] 輸入1~12的月份數字,並判斷其季節。

練習題為輸入一個 1~12 的月份數字並判斷其季節

使用 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("月份不存在");
   
  }

沒有留言:

張貼留言

Layout疑難雜症筆記

 這裡記錄一些Layout時View元件比較特殊的狀況與處理方式,內容會陸續增加。