我正在尝试打印如下的星形图案
*
**
***
****
*****
但是我得到了这个。
*
**
***
****
*****
*****
似乎与恒星的最后一行重复,而且我不知道为什么会这样。你能帮我吗?
这是我的代码:
public class Test1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("*");
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
}
}
}
答案 0 :(得分:2)
您将换行符放在错误的位置。我会将其与*
的写作分开,例如
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();
}
}
}
答案 1 :(得分:2)
您首先要打印一个*
。它应该像您所做的那样完成。在For
的1次完整迭代之后打印新行,如下所示:
代码:
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
}
答案 2 :(得分:1)
您的换行符放置错误。在内部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()
在打印后生成新的换行符,但是{{1 }} 才不是。要了解此概念,请检查以下示例代码:
System.out.print
其输出为:
Tadaa
Tadaa
Stackoverflow
使用此逻辑,很容易看出您出了错。直观地讲,[[System.out.println("Tadaa");
System.out.print("Ta");
System.out.print("daa");
System.out.print("Stackoverflow");
]破损应该在每次迭代结束时发生。
我希望这会有所帮助。快活的编码!