簡體   English   中英

如何擺脫這些額外的空間?

[英]How to Get Rid of These Extra Spaces?

該程序要求列出所有可能的閏年,從 2014 年到 2114 年,我在下面顯示的程序中正確地做到了這一點,並且要列出的年份每行有一個空格,每行有 10 個。 10年一次上市,你go到下一個。 線。 我注意到的唯一問題是每 10 行之間有 3 行空行。 我怎樣才能改變程序,使這些行之間沒有空格。

public class fiveTwoSeven {

    public static void main(String[] args)
    {
        int year2 = 2114;
        int count = 0;
        for (int year1 = 2014; year1 <= year2; year1++)
        {
            if (year1 % 4 == 0 && !(year1 % 100 == 0))
            {
                System.out.print(year1 + " ");
                count++;
            }
            if (count % 10 == 0 && !(count == 0))
            {
                System.out.println();
            }
        }
    }
}

嘗試一下:

if (count % 10 == 0 && !(count == 0))
{
  System.out.println();
  count = 0;
}

要么

    int year2 = 2114;
    int count = 0;
    for (int year1 = 2014; year1 <= year2; year1++)
    {
        if (year1 % 4 == 0 && !(year1 % 100 == 0))
        {
            count++;
            System.out.print(year1 + " ");
            if(count % 10 == 0 && !(count == 0)) {
                System.out.println();
                count = 0;
            }
        }
    }    

Output:

在此處輸入圖像描述

筆記:

  1. 你只需要在count達到10后重新設置計數值,這樣cursor就會轉到下一行。

只需將您的第二個 if 條件塊更改為此:

if (count % 10 == 0 && !(count == 0))
{
    System.out.println();
    count = 0;
}

當計數為 10 或 20 或 30 或....

我正在解釋 10...

從 2014 年開始,根據您的邏輯,第 10 個閏年是 2052。因此在打印 2052 之后,您正在打印一個新行。 對於 2053、2054 和 2055,您的計數仍然是 10。所以第二個 if 塊正在為每個打印另一行。

你應該只在你的if塊中使用println() (因為那是你 output 閏年的時候)。 更重要的是,你的算法有一個錯誤。 是 400 的倍數的年份閏年( 20002400都是閏年)。 我建議您將閏年保存為本地boolean 就像是,

public static void main(String[] args) {
    int count = 0, year1 = 2014, year2 = 2114;
    for (; year1 <= year2; year1++) {
        boolean leapYear = false;
        if (year1 % 4 == 0) {
            if (year1 % 100 != 0) {
                leapYear = true;
            } else if (year1 % 400 == 0) {
                leapYear = true;
            }
        }
        if (leapYear) {
            System.out.print(year1 + " ");
            count++;
            if (count % 10 == 0) {
                System.out.println();
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM