2013-08-25 124 views
-3

我有一個關於創建三角形或金字塔的外部循環的問題,通常我們用3「for」來編碼它,第一個是行,第二個是空格,第三個是「*」然而,有時我感到困惑第一對於其爲外環,例如:Java循環混淆

  * 
     * * * 
     * * * * * 

用於上述棱錐,所述第一回路應for(int i=0;i<=3;i++)for(int i=0;i<=5;i++)

+0

發表您的代碼.. –

+3

我們不寫代碼給你。真的,如果你無法弄清楚,就試試看看外循環需要多少迭代。您不需要第一次就能正確使用代碼,只需編寫程序即可學習更多知識,並在出現問題時進行調試。 –

回答

1

你可以用這個提示嘗試: -

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 
     } 

    } 
} 
+0

我在想這會讓OP更加混亂。迭代方向對於這個問題並不重要。另外,看起來OP已經有用於生成三角形的代碼,但是它們在修改它時很麻煩。 (當然,OP應該首先發布他們的代碼。) –

+0

@MattiasBuelens: - 我完全同意你的看法,但我剛纔解釋了OP如何解決這個問題。 **對於每一行,您必須首先打印一些空格然後打印星星。空間的數量應該減少每行一個,並且星星的數量應該增加** –

+0

不夠公平。我猜他們的代碼已經可以像這樣工作了,但我們需要查看它來驗證。 –

0
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 
     } 
    } 
} 
+0

謝謝你的帖子,你表示第一個循環是行,但通過使用你的代碼,它打印了3行,那麼爲什麼你使用j <= 5但不是j <= 3?我認爲5實際上是明星的數目,對吧?但是你的第一個循環是關於線條的 – user2711992