2014-10-05 29 views
2

我试图完成这项任务: 编写一个程序,提示用户输入年份 和一个月的名称的前三个字母(与 大写的第一个字母),并显示 日月。请记住跳跃 年!如何更改此代码以使用户在月份和年份中输入,而不是仅在输入月份时停止输入?

当我运行该程序时,它会提示我在一年中输入。我随机进入一年,然后它什么都不做。有人能帮助我,这样我不仅能够进入一年,而且还能进入相应的一个月吗?

下面是一个简单的结果:

输入年份:输入一个月(前3个字母与大写首字母): BUILD SUCCESSFUL(总时间:3秒)

我的计划是在这里:

package assignment.pkg4; 

/** 
* 
* @author David Yang 
*/ 
import java.util.Scanner; 
public class DaysOfAMonth { 
    public static void main(String[] args){ 

     // Create a Scanner 
     Scanner input = new Scanner(System.in); 

     // Prompt the user to enter a year 
     System.out.println("Enter a year: "); 

     int year= input.nextInt(); 

     // Prompt the user to enter the first 3 letters of a month 
     System.out.println("Enter a month (first 3 letters with the first letter in uppercase): "); 
     String month = input.nextLine(); 


     if (null != month) switch (month) { 
      case "Jan": 
      case "Mar": 
      case "May": 
      case "July": 
      case "Aug": 
      case "Oct": 
      case "Dec": 
       System.out.println(month + year + "has 31 days"); 
       break; 
      case "Apr": 
      case "Jun": 
      case "Sep": 
      case "Nov": 
       System.out.println(month + year + "has 30 days"); 
       break; 
      case "Feb": 
       System.out.println(month + year + "has 28 days"); 
     } 

     if (year % 4 == 0) { 
      if ("Feb".equals(month)) 
       System.out.println(month + year + "has 29 days"); 
     } 
    } 
    } 

回答

1

input.nextInt();不会采取\ n就行了,所以你需要有一个明确的将其删除。

int year= input.nextInt(); 
input.nextLine(); 
+0

非常感谢! – blue1artic 2014-10-05 01:24:47

相关问题