[英]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:
筆記:
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 的倍數的年份是閏年( 2000
和2400
都是閏年)。 我建議您將閏年保存為本地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.