4 回答
TA贡献1880条经验 获得超4个赞
你把换行符放在错误的位置。我会把它与写作分开*,比如
public class Test1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
TA贡献1827条经验 获得超9个赞
*你一开始就打印一个。它应该像你正在做的那样完成。在 1 次完整迭代后打印新行For,如下所示:
代码:
for (int i = 1; i <= 5; i++)
{
//System.out.println("*"); // This line should not be here
for (int j = 1; j <= i; j++)
{
System.out.print("*");
}
System.out.println(); // you can print new line after each nested-for compleletion
}
TA贡献2021条经验 获得超8个赞
简短回答(TL;DR)
你的换行符放错了。在内部 for 循环执行之后放置换行符,如下所示:
public class Test1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
详细解答
首先,您必须了解System.out.print()和之间的区别System.out.println()。这两个基本上做同样的事情:他们打印出传递给他们的参数。但是,有一个明显的区别:System.out.println()在打印后生成一个新的换行符,但System.out.print实际上并没有。要理解这个概念,请检查下面的示例代码:
System.out.println("Tadaa");
System.out.print("Ta");
System.out.print("daa");
System.out.print("Stackoverflow");
其输出将是:
多田
多田
堆栈溢出
使用这个逻辑,很容易看出哪里出了问题。直觉上,中断 [ .println()] 应该发生在每次迭代结束时。
我希望这有帮助。编码愉快!
TA贡献1876条经验 获得超7个赞
这是所需输出的代码
for (int i = 1; i <= 5; i++)
{
//System.out.println("*");
for (int j = 1; j <= i; j++)
{
System.out.print("*");
}
System.out.println();
}
添加回答
举报