我有一個關於創建三角形或金字塔的外部循環的問題,通常我們用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
發表您的代碼.. –
我們不寫代碼給你。真的,如果你無法弄清楚,就試試看看外循環需要多少迭代。您不需要第一次就能正確使用代碼,只需編寫程序即可學習更多知識,並在出現問題時進行調試。 –