我在第一年,所以我真的是一个新手,我们有作业 -
根据定义,闰年是任何可被4整除的年份。但是,如果一年是一个世纪年,如果它可以被400整除,那么它只是闰年。编写一个输入一年的Java程序并确定是否这一年是没有的闰年。
此外,由于一个世纪的年份未知,我必须根据输入的年份来计算它。我在线阅读了一个我认为正确的答案 - 获得当年的前两位数字然后加1。
我可以只使用if / else吗?
我不知道该怎么做。提交是今天后的第二天。请帮忙!
我的代码看起来像这样,我知道它缺乏世纪年。
import java.util.Scanner;
import java.io.*;
class leapyear
{
public static void main(String[] a)
{
Scanner in = new Scanner (System.in);
int year, centuryyear;
System.out.print("Please enter a year: ");
year = in.nextInt();
if ((year % 4 == 0) && centuryyear % 400 == 0)
{
System.out.println(year + " Is a Leap Year");
year++;
}
else
{
System.out.println(year + " Is not a leap year");
year++;
}
}
}
答案 0 :(得分:0)
我不会为你做功课。我建议你先尝试逻辑解决问题,然后再尝试编写代码。
首先用英语写条件,然后尝试编写匹配的代码,例如:
如果:年份可以被4 整除,除非它也可以被100 整除,除非 ....等等
一旦写下来,它可能会使逻辑更容易理解,然后更容易编码。
答案 1 :(得分:0)
您应该考虑以下提示:
year % 4 == 0
只意味着如果不是世纪年,那年就是闰年。centuryyear
无效,可以从您的程序中删除。||
?然后按照Sam Holder的建议去做。
答案 2 :(得分:0)
我可以只使用if / else吗?
是的,你可以。一个建议。您可以使用嵌套的if~else
块。您没有理由只找到一个正确的if
条件。
if (...) {
if (...) {
...
}
} else {
if (...) {
...
}
}
当然,您可以使用if~else if
代替嵌套if~else
。
if (... && ...) {
...
} else if (... && ...) {
...
}
最后这也是等效的(单个但嵌套if条件):
if ((... && ...) || (... && ...)) {
...
}
答案 3 :(得分:0)
你不需要使用一个单独的"世纪年"变量。您只需要测试一年,看它是否符合标准。标准:
除以4并且不能被100整除,除非也可被400整除
您已经知道如何使用%来测试这些条件,所以让我们分别看一下它们:
可被4整除的年份为:年%4 == 0
不能被100整除:年%100!= 0
但是可以被400整除:年%400 == 0
所以我们需要第一个表达式AND第二个表达式OR第三个表达式:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)