2016-07-22 52 views
-1

我使這個代碼顯示了一系列星號,每次你往下一行時,它們都會變小一點。它應該從10開始,在最下面一行停在1,但由於某種原因,我的代碼從頂部1開始,隨着它下降而變大。我想知道如何去翻轉輸出以便它看起來像例子。在此先感謝如何更改此代碼以使輸出翻轉?

例子:

********** 
********* 
******** 
******* 
****** 
***** 
**** 
*** 
** 
* 

我的代碼:

public class RowsOfAsterisks { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     for (int i = 1; i < 11; i++) 
      { 
       for (int x = 0; x < i; x++) 
       { 
        System.out.print("*"); 
       } 
       System.out.println(); 
      } 
    } 

} 
+0

如果您使用了代碼塊,星號將顯示 –

回答

0

你只需從10啓動外循環,以實現這一目標。

我希望下面的代碼可以幫助你:

public class RowsOfAsterisks { 
    public static void main(String[] args) { 
     for (int i = 10; i > 0; i--) 
     { 
      for (int x = 0; x < i; x++) 
      { 
       System.out.print("*"); 
      } 
      System.out.println(); 
     } 
    } 
} 
+0

完美工作。謝謝! – cpitt6477

0
int rows = 10; 

int columns = 10; 




for(int i = 0; i<rows; i++) 
{ 
    for(int j = 0; int j < columns; j++) 
    { 
     System.out.print("*"); 
    } 
    System.out.println(); 
    --columns; 

} 
2

您可以爲了創建另一種方法,以避免兩個用於statment

檢查,如果它可以幫助你:

public class RowsOfAsterisks 
{ 
    public static String repeat(String str, int times) 
    { 
     return new String(new char[times]).replace("\0", str); 
    } 

    public static void main(String[] args) 
    { 
     for(int i = 10; i > 0; i--) 
     { 
     System.out.println(repeat("*", i)); 
     } 
    } 
} 
+0

我在代碼中看不到其他類。 – Robert

+0

該方法是靜態的,可以直接調用;如果這就是你的意思羅伯特。 – SomeStudent

+1

我的意思是方法...感謝糾正的傢伙! :) – RBenito

0

你在正確的軌道上,你只需要修復嵌套循環如下:

public static void main(String[] args) { 
    for (int i = 1; i < 11; i++) 
     { 
      for (int x = 11; x > i; x--) 
      { 
       System.out.print("*"); 
      } 
      System.out.println(); 
     } 
}