我一直在尝试在 java 中使用 for 循环语句打印不同的模式。现在我想学习如何打印以下图案。它基本上是一种倾斜的金字塔型图案。
*
**
***
****
***
**
*
我试着做到了,我确实得到了正确的结果,但问题是我认为我这样做的方式是一种不方便的方式。这是代码:
for (int x = 1; x <= 4; x++) {
for (int y = 1; y <= x; y++) {
System.out.print("*");
}
System.out.println();
}
for (int x = 1; x <= 3; x++) {
for (int y = 3; y >= x; y--) {
System.out.print("*");
}
System.out.println();
}
最佳答案
您的代码产生了正确的输出并且对我来说足够清晰。我能提出的唯一建议是使用变量来表示金字塔的大小,而不是硬编码值。
您可以用更紧凑的方式编写它,只使用 2 个循环,如下所示:
int size = 7;
for (int row = 0; row < size; row++) {
for (int column = 0; column <= Math.min(size-1-row, row); column++) {
System.out.print("*");
}
System.out.println();
}
这里的想法是:
- 对于金字塔的每一行(因此行从 0 到
size
排除) - 我们需要确定要打印多少个星号。如果我们在金字塔的上半部分,它就等于我们所在的行。如果我们在金字塔的下半部分,它等于
size-1-row
(随着行的增加而减少)。因此,星号的计数是row
和size-1-row
中的最小值:这是使用Math.min(size-1-行,行)
。
关于java - 如何在 java 中使用 for 循环在 java 中打印倾斜的金字塔图案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33329199/