创建闰年计划(包括世纪)

时间:2015-09-07 18:31:34

标签: java leap-year

我在第一年,所以我真的是一个新手,我们有作业 -

  

根据定义,闰年是任何可被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++;
            }
    }
}

4 个答案:

答案 0 :(得分:0)

我不会为你做功课。我建议你先尝试逻辑解决问题,然后再尝试编写代码。

首先用英语写条件,然后尝试编写匹配的代码,例如:

  

如果:年份可以被4 整除,除非它也可以被100 整除,除非 ....等等

一旦写下来,它可能会使逻辑更容易理解,然后更容易编码。

答案 1 :(得分:0)

您应该考虑以下提示:

  1. year % 4 == 0只意味着如果不是世纪年,那年就是闰年。
  2. 变量centuryyear无效,可以从您的程序中删除。
  3. 如果可以被100整除,则一年是一个世纪的年份。
  4. 您是否知道OR运算符||
  5. 然后按照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)