JAVA程式碼年月日

import java.util.Scanner;

public class play

{

public static void main(String[] args)

{

System.out.println("Enter month day year");

Scanner Keyboard=new Scanner(System.in);

int newmonth=Keyboard.nextInt();

int day=Keyboard.nextInt();

int year=Keyboard.nextInt();

month=monthString(newmonth);

public monthString()

{ switch(newmonth)

{

case 1:

return "January";

case 2:

return "February";

case 3:

return "March";

defult:

System.out.println("Error");

System.exit(0);

return "Error";

}//switch

}

System.out.println(day,month,year);

}

}

他說public monthString()這行錯了

我看不懂@@

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    1. monthString() 的宣告方式不正確。按照程式碼中 case 1、case 2 以及 case 3 的傳回值 "January"、"February" 和 "March" 看來,這個方法應該要在宣告時定義傳回值型態為字串;另外由於這個方法的傳入值為一個整數,也必須在宣告時定義清楚,也就是 public String monthString(int newmonth)。2. monthString() 在使用時不正確,month 這個參數並沒有定義它的型態,根據 monthString() 這個方法的傳回值型態為字串,應該定義 month 的型態為字串,也就是 String month = monthString(newmonth);3. 最後是結構上的問題,Java 不支援在一個方法中直接定義另一個(副)方法,也就是說 main() 和 monthString() 這兩方法要分開;又 monthString() 因為要在 main() 中直接被使用,而並非以建立一個 play 物件,因此在宣告時要加上 static 關鍵字。4. println() 的方法不正確,其接受的參數為一個字串。5. switch 敍述句中的 default 拼錯。請參考我的做法import java.util.Scanner;public class play{ public static void main(String[] args) { System.out.println("Enter month day year"); Scanner Keyboard = new Scanner(System.in); int newmonth = Keyboard.nextInt(); int day = Keyboard.nextInt(); int year = Keyboard.nextInt(); String month = monthString(newmonth); System.out.println(day + " " + month + " " + year); } public static String monthString(int newmonth) { switch(newmonth) { case 1: return "January"; case 2: return "February"; case 3: return "March"; default: System.out.println("Error"); System.exit(0); return "Error"; }//switch }}

Still have questions? Get your answers by asking now.