好的,所以我的代码被编译但是if / else语句不起作用

时间:2014-01-30 03:37:52

标签: java if-statement switch-statement

我认为可能是由于switch语句。 我是否已经将它们作为开关语句来制定它们。

import java.util.Scanner;
public class mylab

{
   public static void main(String[] args) 

   {
       Scanner in = new Scanner(System.in);

       int month;
       int day;
       String season= "seasons";

       System.out.print("type a two digit month");
       System.out.print(" and day");
       month = in.nextInt();
       day = in.nextInt();

       String winter = " winter ";
       String summer = " summer";
       String spring = " spring";

       System.out.print(" Month="+ month +" Day= "+day);

       switch (month) {
           case 1:  
               month = 1; System.out.println(" Winter");
               break;
           case 2:  
               month = 2; System.out.println(" Winter");
               break;
           case 3:  
               month= 3;System.out.println(" Winter");
               break;
           case 4:
               month= 4;System.out.println(" Spring");
               break;
           case 5:  
               month = 5;System.out.println(" Spring");
               break;
           case 6:
               month = 6 ;System.out.println(" Spring");
               break;
           case 7: 
               month = 7 ;System.out.println(" Summer");
               break;
           case 8: 
               month = 8;System.out.println(" Summer");
               break;
           case 9:
               month = 9;System.out.println(" Summer");
               break;
           case 10:
               month = 10;System.out.println(" Fall");
               break;
           case 11: 
               month = 11;System.out.println(" Fall");
               break;
           case 12:
               month = 12;System.out.println(" Fall");
               break;
        }

如何使用switch语句使这部分工作 这部分的伪代码是如果月份可以被3整除,那么> = 21,如果季节是“冬天”,季节=“春天”,如果季节是“春天”,那么季节=“夏天”,如果是季节是“夏天”,季节=“秋天”  其他季节=“冬天”

  if (month % 3 == 0 && day >= 21)  
  {
      if ( season.equals(winter) )  
          System.out.println(" Spring");   
      else if ( season.equals(spring) ) 
          System.out.println ( "Summer" );  
      else if ( season.equals(summer) ) 
          System.out.println ( " fall");
      else if ( season.equals(winter) ) 
          System.out.println( " winter");

      }
   }
} 

1 个答案:

答案 0 :(得分:1)

这就是我可能写的方式(如果我绝对不得不保留开关而我不在乎检查用户输入):

import java.util.Scanner;
public class mylab {
   public static void main(String[] args) {
       int month, day;
       Scanner in = new Scanner(System.in);

       System.out.print("Type a two digit month: ");
       month = in.nextInt();
       System.out.print("Type a two digit day: ");
       day = in.nextInt();

       System.out.print(" Month="+ month +" Day= "+day+" ");

       if(month%3==0 && day>=21) {
         month++;
         if(month>12) month=1;
       }
       switch (month) {
         case 1: case 2: case 3: System.out.println("Winter"); break;
         case 4: case 5: case 6: System.out.println("Spring"); break;
         case 7: case 8: case 9: System.out.println("Summer"); break;
         case 10: case 11: case 12: System.out.println("Fall"); break;
       }
   }
}