2015-05-24 18 views
3

该程序要求用户输入等于或等于1-12的任何数字。然后它将数字转换为将要打印的消息(复制程序自己查看它)。有没有办法缩短代码?制作程序根据相应的数字打印月份名称更短

import javax.swing.JOptionPane; 

public class NumOfMonth { 

public static void main(String[] args) { 



    int num = Integer.parseInt (JOptionPane.showInputDialog ("Enter any number equal to or between 1-12 to display the month")); 

    switch (num) 
    { 
    case 1: 
     System.out.println ("The name of month number 1 is January"); 
     break; 
    case 2: 
     System.out.println ("The name of month number 2 is February"); 
     break; 
    case 3: 
     System.out.println ("The name of month number 3 is March"); 
     break; 
    case 4: 
     System.out.println ("The name of month number 4 is April"); 
     break; 
    case 5: 
     System.out.println ("The name of month number 5 is May"); 
     break; 
    case 6: 
     System.out.println ("The name of month number 6 is June"); 
     break; 
    case 7: 
     System.out.println ("The name of month number 7 is July"); 
     break; 
    case 8: 
     System.out.println ("The name of month number 8 is August"); 
     break; 
    case 9: 
     System.out.println ("The name of month number 9 is September"); 
     break; 
    case 10: 
     System.out.println ("The name of month number 10 is October"); 
     break; 
    case 11: 
     System.out.println ("The name of month number 11 is November"); 
     break; 
    case 12: 
     System.out.println ("The name of month number 12 is December"); 
     break; 
     default: 
      System.out.println ("You have entered an invalid number"); 
     } 
    } 
} 
+0

如果您的程序正常工作,并且您在寻找评论,则可能更适合http://codereview.stackexchange.com/。您也可以查看一个'enum'或'Array'或'Map' .. –

回答

11

是,使用DateFormatSymbols

return new DateFormatSymbols().getMonths()[num - 1]; 

getMonths回报阵列月字符串..

我强烈建议你访问该阵列之前检查范围。

+0

不应忽略捕捉超出范围的值。 – laune

+0

@laune竖起大拇指。 – Maroun

+0

复杂的读者应该注意到,这种方法根据有效的区域设置来改变返回值。 – laune

3
import javax.swing.JOptionPane; 

public class NewClass { 

    public static void main(String[] args) { 

     String[] months = new String[]{ 
      "", 
      "JAN", 
      "FEB", 
      "MAR", 
      "APR", 
      "MAY", 
      "JUN", 
      "JUL", 
      "AUG", 
      "SEP", 
      "OCT", 
      "NOV", 
      "DEC" 
     }; 

     int num = Integer.parseInt(JOptionPane.showInputDialog("Enter any number equal to or between 1-12 to display the month")); 

     if (num >= 1 && num <= 12) { 
      System.out.println("Name of month is " + months[num]); 
     } else { 
      System.out.println("INVALID ENTRY"); 
     } 
    } 
}