【发布时间】:2014-10-01 09:39:53
【问题描述】:
import java.util.*;
public class LeapYear
{
public static void main (String[]args)
{
Scanner scan= new Scanner (System.in);
System.out.println("Please enter in the year");
int year=scan.nextInt();
if (year % 4 ==0)
{
{
if (year % 100 ==0);
else
System.out.println("The year,"+year+",is a leap year!");
}
if(year % 400==0)
System.out.println("The year, "+year+",is a leap year!");
}
else
System.out.println("The year, "+year+",is not a leap year!");
}
}
大家好!以上是我的闰年程序代码——它似乎运行良好,除非我输入 3000 或 300 之类的数字,JVM 只是停止并关闭终端窗口。有人可以指导为什么它不接受这些数字(另外,请原谅我的代码格式不正确 - 我是新手,正在尽我所能) 注意:当我测试 1900、1996、2004、164 和 204 作为年份时,它会显示所有正确答案。它根本不接受 300 或 3000。 再次感谢!
【问题讨论】:
-
一条建议,尤其是在学习 Java 时,请在 if 语句之后添加所有大括号。它将更清楚您在哪里有空的 if 语句以及 if 语句在哪里结束。
-
看来您需要阅读更多关于逻辑运算符的信息,例如
||(或)、&&(和)、!(非),或者像!=(不等于)这样的关系)。这可以让您创建像if (year % X == 0 || (year % Y == 0 && year % Z!= 0))这样的表达式 - 尝试找出应该用什么值代替XY和Z以便解决您的任务。 -
仅供参考:
java.time.Year( 2017 ).isLeap()