Java闰年计算器
我正在做一个扫描器对象,以得到一年,并测试它是否是闰年。只是想得到一些反馈。这就是我所拥有的吗?谢谢大家!Java闰年计算器,java,leap-year,Java,Leap Year,我正在做一个扫描器对象,以得到一年,并测试它是否是闰年。只是想得到一些反馈。这就是我所拥有的吗?谢谢大家! import java.util.Scanner; public class Micro4 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int testDate = input.nextInt(); boolean divFou
import java.util.Scanner;
public class Micro4
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int testDate = input.nextInt();
boolean divFour = (((testDate % 4) == 0));
boolean divHundred = (((testDate % 100) != 0));
boolean divFourHundred = (((testDate % 400) != 0));
if (divFour && divHundred && divFourHundred) {
System.out.println(testDate + " is a leap year.");
} else {
System.out.println(testDate + " is not a leap year.");
}
}
}
逻辑有点错误。2000年是闰年,但它并不符合你的计划。正确的逻辑应该是:
if ((divFour && divHundred)||!divFourHundred) {
此外,正如Dave Galvin所建议的,一定要使用更好的变量名来提高可读性。诀窍在于将其转化为代码: 如果一年可以被4整除,那么它就是闰年,但是百年是闰年 不是闰年,除非它们可以被400整除 我正在检查一年是否是4的倍数,而不是100的倍数,或者一年是否是400的倍数
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
System.out.println("Leap");
else
System.out.println("Not leap.");
你能加上你得到的确切错误吗?打个电话就可以了。克里斯,这显然是需要学习的。当然,有内置的方法来做这些事情,但拉斐尔不会从解决问题中学习。至于你,斯里坎特,请阅读拉斐尔的帖子——他要求的是简单的反馈,而不是纠正错误。