Java 无法编写计算闰年的代码
方向: “如果一年可以被4整除,那么它就是闰年。但是如果一年可以被100整除,那么只有当它也可以被400整除时,它才是闰年。” 创建一个程序来检查给定的年份是否是闰年。“我在计算部分遇到了最大的麻烦。这是我的密码:Java 无法编写计算闰年的代码,java,operation,leap-year,Java,Operation,Leap Year,方向: “如果一年可以被4整除,那么它就是闰年。但是如果一年可以被100整除,那么只有当它也可以被400整除时,它才是闰年。” 创建一个程序来检查给定的年份是否是闰年。“我在计算部分遇到了最大的麻烦。这是我的密码: public static void main(String[] args) { Scanner reader = new Scanner(System.in); int year; System.out.print("Type a year:");
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int year;
System.out.print("Type a year:");
year=Integer.parseInt(reader.nextLine());
if ((year%4==0)||(((year%100==year%400)))){
System.out.println("The year a leap year.");
}else
System.out.println("The year is not a leap year.");
}
当我运行代码时,我没有收到错误,但是,当我输入这样的日期,1600、1601和1700等时,它说这是一个闰年,而不应该是。我很迷路,任何帮助都将不胜感激试试这个:
(年份%4==0和年份%100!=0)| |年份%400==0
您的|
应该是&&
。| |必须是&&这是否回答了您的问题?谢谢,代码100%有效。你能解释一下我做错了什么,使我的代码无法正确打印吗。接线员“!,”我从来没有真正理解它的意思,你能解释一下“!”在这种情况下是如何工作的吗?再次感谢你!:)@AMCgiftcard订单很重要。在您的例子中,您首先检查年
是否可被4整除(对于每一个可被100整除的数字,这总是真
)。此外,检查year%100==year%400
中的相等性也不是一件好事,因为它返回true
,即使是1601年或2003年(因为除以100和400的余数是相同的)。在上面的代码中,它首先检查年份
是否可以被4整除,而不能被100整除。这意味着我们只处理第一种情况(第二种情况是可以被100整除的数字)。哦,好吧,这更有意义!再次感谢你!