我正在尝试System.out.print()中的一个钻石。到目前为止,我花了5个小时试图弄清楚如何反转打印钻石的底部三角形。 我可以担心以后完成钻石的间距。 (我在大多数情况下都有效)。
如果有人可以向我解释我做错了什么以及正确的方式如何运作我会非常感激。
private static void diamond()
{
int numLines = 0;
System.out.println("How many lines would you like in the Diamond?");
numLines = scan.nextInt();
if (numLines / 2 == 0) //if number is even, make odd.
{
numLines++;
}
for(int i = 0; i <= numLines ; i++) // Controls #Lines
{
if(i <= numLines / 2)
{
for(int j = 0; j < i * 2 - 1; j++) // Controls #Stars small upright triangle
{
System.out.print("*");
}
}
else
{
for(int k = numLines; k > i / 2; k--) // Controls # of spaces
{
System.out.print("*");
}
/*for(int j = numLines/2 - i, l = i; l > j; j++) // Controls #Stars small upright triangle
{
String stars = "*";
System.out.print(stars);
}*/
}
System.out.println("");
}
}
`
答案 0 :(得分:0)
你尝试的是你绕过钻石的一半(线条)[第二/上半部分的线条]次。
你想要在每个循环中执行if语句,而不是在每个循环中执行if 和 a
答案 1 :(得分:0)
可能你想要这个
只需根据用户输入值进行调整
public static void main(String[] args) {
System.out.print("Reverse diamond: \n");
for (int i = 1; i < 10; i += 2) {
for (int j = 0; j < 9 - i / 2; j++)
System.out.print(" ");
for (int j = 0; j < i; j++)
System.out.print("*");
System.out.print("\n");
}
System.out.print("\n\nDiamond from starts: \n");
for (int i = 7; i > 0; i -= 2) {
for (int j = 0; j < 9 - i / 2; j++)
System.out.print(" ");
for (int j = 0; j < i; j++)
System.out.print("*");
System.out.print("\n");
}
}
<强>输出:强>