【发布时间】:2020-02-07 05:48:01
【问题描述】:
我编写了一个简单的程序,它应该显示用户输入的 int 是否是闰年,如果是,那么它是什么闰年。
在程序运行期间,只要输入了一个不应该是闰年的数字,它就不会打印 else 语句。
注意:这是在 IDE BlueJ 中编写的,所以 io 是自动导入的,所以我没有导入它
/**
* Reads a user inputted integer value and determines if it is a leap year
* Created by Oh boy I suck at this
* 9 September 2019
*/
import java.util.Scanner;
public class LeapYear
{
public static int getYear(String prompt)
{
String newLine = System.getProperty("line.separator");
int value = 0;
boolean flag = true;
while (flag)
{
Scanner scan = new Scanner(System.in);
System.out.println(prompt + ": ");
try
{
value = scan.nextInt();
flag = false;
}
catch(java.util.InputMismatchException e)
{
System.out.println("What you have inputed was not an int.");
System.out.println(newLine);
}
}
return value;
}
public static void main (String[] args)
{
int year = getYear("Input the year ");
final int leapYear = year/4;
if(year % 4 == 0){
if(year % 100 >= 1){
if(year % 400 >= 1){
System.out.println("The year inputted: " + year + " is equivilant to " + leapYear + " leap year(s).");
}
else{
System.out.println("The year inputted: " + year + " is not a leap year.");
}
}
}
}
}
【问题讨论】:
-
哪些年不工作?由于外层
if(year % 4 == 0),有很多非闰年不会打印。 -
对不起,我直到现在才看到这个,但问题已经解决,感谢您的耐心等待,对于这么晚的回复,我深表歉意。
标签: java if-statement bluej