3 回答
TA贡献2039条经验 获得超7个赞
首先,让我们看一下代码的输出:
.****
..***
...**
....*
.....
作为字符串,这与:
.****\n..***\n...**\n....*\n.....\n
默认情况下,在 Java 中使用System.out会写入标准字符输出流。当您写入此流时,可以使用各种方法,包括System.out.print和System.out.println。调用print将输出您提供给它的确切字符串,而调用println将输出您提供给它的字符串,后跟一个新行(系统的行分隔符)。如果您调用System.out.println()(println不带参数),您将输出您提供的字符串("")并将输出移动到下一行。本质上,这意味着删除System.out.println()代码中的调用将产生以下输出:
.****..***...**....*.....
此输出看起来与字符串完全相同。\n正如您所看到的,当您只调用System.out.print和不调用时,输出中没有换行符 ( ) System.out.println。
最后,让我们看看您的代码,使其更易于阅读和理解。我正在使用 Java 11+ 功能String.repeat来极大地简化此处重复字符串的操作:
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println(".".repeat(i)+"*".repeat(5-i));
}
}
输出:
.****
..***
...**
....*
.....
这相当于原始输出。然而,阅读和理解正在发生的事情会更清楚。假设您无权访问这些功能,您可以执行以下操作:
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();
}
这段代码也有相同的输出。它的内容与您的代码片段没有太大区别,因为您的代码片段确实有正确的想法。然而,它的格式更加一致,这使得您自己和其他人更容易阅读代码。请注意重复如何用 name 进行标记rpts,并且(在两个示例中)迭代变量都是整数。Java 程序员通常使用整数进行迭代,因为使用迭代所节省的空间bytes对于大多数应用程序而言可以忽略不计,并且整数涵盖了您可能想要迭代的大多数值范围。
TA贡献1802条经验 获得超5个赞
您的代码的输出是:
.****
..***
...**
....*
.....
如果没有System.out.println();,输出将是:
.****..***...**....*.....
System.out.println();对于循环的每次交互,都会在屏幕上打印一个新行字符。
TA贡献1111条经验 获得超0个赞
欢迎来到堆栈溢出!
a 本身System.out.println()
只会打印一个换行符,例如\n
。如果您要向此语句添加参数,它将打印您的参数以及换行符。
这是 JavaDocsprintln
通过写入行分隔符字符串来终止当前行。行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个换行符 ('\n')。
您链接的代码将打印一定数量的.
字符和一定数量的*
字符,没有任何换行符。然后,最后一个System.out.println();
将打印一个换行符,并且循环将重新开始。
输出:
.**** ..*** ...** ....* .....
添加回答
举报