3 回答

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先,讓我們看一下代碼的輸出:
.****
..***
...**
....*
.....
作為字符串,這與:
.****\n..***\n...**\n....*\n.....\n
默認(rèn)情況下,在 Java 中使用System.out會(huì)寫入標(biāo)準(zhǔn)字符輸出流。當(dāng)您寫入此流時(shí),可以使用各種方法,包括System.out.print和System.out.println。調(diào)用print將輸出您提供給它的確切字符串,而調(diào)用println將輸出您提供給它的字符串,后跟一個(gè)新行(系統(tǒng)的行分隔符)。如果您調(diào)用System.out.println()(println不帶參數(shù)),您將輸出您提供的字符串("")并將輸出移動(dòng)到下一行。本質(zhì)上,這意味著刪除System.out.println()代碼中的調(diào)用將產(chǎn)生以下輸出:
.****..***...**....*.....
此輸出看起來(lái)與字符串完全相同。\n正如您所看到的,當(dāng)您只調(diào)用System.out.print和不調(diào)用時(shí),輸出中沒(méi)有換行符 ( ) System.out.println。
最后,讓我們看看您的代碼,使其更易于閱讀和理解。我正在使用 Java 11+ 功能String.repeat來(lái)極大地簡(jiǎn)化此處重復(fù)字符串的操作:
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println(".".repeat(i)+"*".repeat(5-i));
}
}
輸出:
.****
..***
...**
....*
.....
這相當(dāng)于原始輸出。然而,閱讀和理解正在發(fā)生的事情會(huì)更清楚。假設(shè)您無(wú)權(quán)訪問(wèn)這些功能,您可以執(zhí)行以下操作:
for (int i = 1; i <= 5; i++) {
for(int rpts = 0; rpts < i; rpts++) {
System.out.print('.');
}
for(int rpts = i; rpts < 5; rpts++) {
System.out.print('*');
}
System.out.println();
}
這段代碼也有相同的輸出。它的內(nèi)容與您的代碼片段沒(méi)有太大區(qū)別,因?yàn)槟拇a片段確實(shí)有正確的想法。然而,它的格式更加一致,這使得您自己和其他人更容易閱讀代碼。請(qǐng)注意重復(fù)如何用 name 進(jìn)行標(biāo)記rpts,并且(在兩個(gè)示例中)迭代變量都是整數(shù)。Java 程序員通常使用整數(shù)進(jìn)行迭代,因?yàn)槭褂玫?jié)省的空間bytes對(duì)于大多數(shù)應(yīng)用程序而言可以忽略不計(jì),并且整數(shù)涵蓋了您可能想要迭代的大多數(shù)值范圍。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您的代碼的輸出是:
.****
..***
...**
....*
.....
如果沒(méi)有System.out.println();,輸出將是:
.****..***...**....*.....
System.out.println();對(duì)于循環(huán)的每次交互,都會(huì)在屏幕上打印一個(gè)新行字符。

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
歡迎來(lái)到堆棧溢出!
a 本身System.out.println()
只會(huì)打印一個(gè)換行符,例如\n
。如果您要向此語(yǔ)句添加參數(shù),它將打印您的參數(shù)以及換行符。
這是 JavaDocsprintln
通過(guò)寫入行分隔符字符串來(lái)終止當(dāng)前行。行分隔符字符串由系統(tǒng)屬性 line.separator 定義,并且不一定是單個(gè)換行符 ('\n')。
您鏈接的代碼將打印一定數(shù)量的.
字符和一定數(shù)量的*
字符,沒(méi)有任何換行符。然后,最后一個(gè)System.out.println();
將打印一個(gè)換行符,并且循環(huán)將重新開始。
輸出:
.**** ..*** ...** ....* .....
添加回答
舉報(bào)