我有一个关于创建三角形或金字塔的外部循环的问题,通常我们用3“for”来编码它,第一个是行,第二个是空格,第三个是“*”然而,有时我感到困惑第一对于其为外环,例如:Java循环混淆
*
* * *
* * * * *
用于上述棱锥,所述第一回路应for(int i=0;i<=3;i++)
或for(int i=0;i<=5;i++)
?
我有一个关于创建三角形或金字塔的外部循环的问题,通常我们用3“for”来编码它,第一个是行,第二个是空格,第三个是“*”然而,有时我感到困惑第一对于其为外环,例如:Java循环混淆
*
* * *
* * * * *
用于上述棱锥,所述第一回路应for(int i=0;i<=3;i++)
或for(int i=0;i<=5;i++)
?
你可以用这个提示尝试: -
for (int i = rows; i > x; i--) { ... }
对于每一行,你必须先打印一些空间,然后打印星星。空格的数量应该由每行一个下降,恒星的数量应该增加与全码已更新
: -
class Pyramid
{
public static void main(String[] args)
{
int x=11;
int y=x/2; // spaces
int z=1; // *`s
for(int i=0;i<3;i++)
{
for(int j=0;j<y;j++)
{
System.out.print(" ");
}
for(int k=0;k<z;k++)
{
System.out.print("*");
}
y=y-1;
z=z+2;
System.out.println(); //new line
}
}
}
我在想这会让OP更加混乱。迭代方向对于这个问题并不重要。另外,看起来OP已经有用于生成三角形的代码,但是它们在修改它时很麻烦。 (当然,OP应该首先发布他们的代码。) –
@MattiasBuelens: - 我完全同意你的看法,但我刚才解释了OP如何解决这个问题。 **对于每一行,您必须首先打印一些空格然后打印星星。空间的数量应该减少每行一个,并且星星的数量应该增加** –
不够公平。我猜他们的代码已经可以像这样工作了,但我们需要查看它来验证。 –
class Pyramid
{
public static void main(String[] args)
{
for(int j=1;j<=5;j+=2) //for lines
{
for(int i=1;i<=j;i++) //for stars and spaces
{
System.out.print("* ");
}
System.out.println(); //newline
}
}
}
谢谢你的帖子,你表示第一个循环是行,但通过使用你的代码,它打印了3行,那么为什么你使用j <= 5但不是j <= 3?我认为5实际上是明星的数目,对吧?但是你的第一个循环是关于线条的 – user2711992
发表您的代码.. –
我们不写代码给你。真的,如果你无法弄清楚,就试试看看外循环需要多少迭代。您不需要第一次就能正确使用代码,只需编写程序即可学习更多知识,并在出现问题时进行调试。 –