2013-07-07 33 views
-3

我正在使用嵌套for循環來製作數值模式。此代碼工作得很好,只要我不進入上述7例如一個號碼,當我把在7它看起來像這樣(沒有空格):有人可以使用嵌套循環查看我的Java代碼中的數字菱形模式嗎?

 1 

     212 

     32123 

    4321234 

     32123 

     212 

     1 

但是,當我進入9它看起來像這樣:

    1 

       212 

       32123 

       4321234 

       543212345 

       4321234 

       32123 

我做錯了什麼使它不能完鑽?

public void displayPatternVI (int lines) 
    { 
     System.out.println("\n\tMy Own Pattern to be implemented\n"); 

     int columns = 1; 
     int start = 0; 
     int spaces = lines/2; 
     for (int i = 1; i <= 7; i++) 
     { 

      for (int j = 1; j <= spaces; j++) 
      { 
       System.out.print (" "); 
      } 


      if(i < lines/2+1) 
      { 
       start = i; 
       spaces = spaces - 1; 
      } 
      else 
      { 
       start = (lines + 1) - i; 
       spaces = spaces + 1; 
      } 



      for (int j = 1; j <= columns; j++) 
      { 
       int midColumn = columns/2 + 1; 
       System.out.print(start); 
       if (j < midColumn) 
       { 
        start--; 
       } 
       else 
       { 
        start++; 
       } 

      } 
      System.out.println(); 

      if(i<lines/2+1) 
      { 
       columns = columns + 2; 
      } 
      else 
      { 
       columns = columns - 2; 
      } 



     } 




     System.out.println(); 

    } 
+2

那你發現當你在調試器中通過你的代碼? –

+0

@Oli Charlesworth那是什麼? –

+0

[調試器](http://en.wikipedia.org/wiki/Debugger)是一種工具,它允許您逐行交互式地逐步執行代碼,並調查變量的瞬時值等。大多數Java IDE帶有一個內置的。現在將是學習如何使用它的好時機,因爲它們對於診斷代碼中的錯誤非常有用! –

回答

1

什麼改變<= 7<= 9(或最有可能的變量保持輸入號碼)

變化:

for (int i = 1; i <= 7; i++) 

for (int i = 1; i <= lines; i++) 
+0

非常感謝你!現在我感到愚蠢。 –

+0

我遇到了偶數編號的問題。 –

+0

沒關係。當我將它改爲i <=行+ 1時,它適用於偶數就好 –

相關問題