【发布时间】:2018-10-10 18:54:44
【问题描述】:
import java.util.Scanner;
public class DaysInMonth
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter a year:")
int year = input.nextInt(); enter code here
System.out.print("Enter a month:");
int month = input.nextInt(); enter code here
int days = 0;
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0)||(year % 400 == 0);
switch (month){
case 1:
days = 31;
break;
case 2:
if (isLeapYear)
days = 29;
else
days = 28;
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
default:
String response = "Have a Look at what you've done and try again";
System.out.println(response);
System.exit(0);
}
String response = "There are " +days+ " Days in Month "+month+ " of Year " +year+ ".\n";
System.out.println(response); // new line to show the result to the screen.
}
}
如果我输入 1,为什么我不能在一月份输入以获得相同的输出结果?它应该打印“2018 年 1 月有 31 天”我初始化了这个月份,所以它应该是 1 月或任何其他月份。
我知道我有 int 但我想知道如何也使用 January for 1 来获得相同的输出。
【问题讨论】:
-
使用
HashMap,Integer作为键,String作为值 -
@GBlodgett 或一个数组。
-
正确缩进您的代码将使其更具可读性,人们将更有可能阅读它。
-
你想在你的 switch() 中使用一个字符串变量吗?
标签: java switch-statement case