2011-10-29 130 views
0

我有一個問題,要繪製一個20個字符(大小爲'square')的大小限制的正方形ASCII碼,這是我的代碼,我測試過了,但它工作正常,但是當我把數字超過20它顯示一個錯誤,請幫助,謝謝。使用java繪製ASCII藝術

class Main { 
    public static void printSquare(int size) { 
     int line = 1; 

     while (line <= size) { // For each line of square 
      int width = size; // width of square segment 
      int i = 1; // display square segment 

      while (i <= width && size <= 20) { 
       System.out.print("*"); 
       i = i + 1; 
      } 

      System.out.println(); // Newline 
      line = line + 1; 
     } 
    } 
} 
+0

什麼是你的錯誤? – Marcus

回答

3

的問題是,你永遠不會打印*如果大小比20,一種更好的方式將其限制到20會循環之前限制大小。

public static void printSquare(int size) { 
    if(size > 20) { 
     size = 20; 
    } 
    int line = 1; 

,然後編輯

while (i <= width && size <= 20) { 

while (i <= width) { 
+0

謝謝,但我的意思是當尺寸值大於20時將*顯示爲0,所以我將它們修改爲:public static void printSquare(int size) if(size> = 20 && size> = 0){ size = 0; } int line = 1; – user761497

+0

Okey。它沒有明確說明,因此我的回答是,下次嘗試提供更多的信息:)順便說一句,您通過在答案左側勾選大綱來接受答案。 – Marcus