2014-01-30 22 views
-1

我認爲這可能是由於switch語句造成的。 我是否已經爲他們制定了切換語句。好吧,我的代碼已編譯,但if/else語句不起作用

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"); 

     } 
    } 
} 
+2

這不是「僞代碼」,它是Java。它是一種編程語言的源代碼。你的問題也與IDE無關。如果您實際使用適用於您問題的標籤,它可以幫助您更快速地獲得答案。 –

+0

檢查您的大小寫和空格。此外,交換機中的這些月份分配是多餘的。 – BRFennPocock

+3

季節總是字符串「季節」。您永遠不會將您正在檢查的值中的一個賦值給它,以便相等性檢查總是失敗。 – tvanfosson

回答

1

這是我的」 d可能寫它(如果我絕對不得不保持開關,我不想檢查用戶輸入):

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; 
     } 
    } 
}