2012-04-16 119 views
-1

我正在學習Java中的Pyramid Numbers,它有這樣的代碼。瞭解Java中的金字塔數字

​​3210

輸出是

    1 
       2 1 2 
       3 2 1 2 3 
      4 3 2 1 2 3 4 
     5 4 3 2 1 2 3 4 5 
    6 5 4 3 2 1 2 3 4 5 6 
    7 6 5 4 3 2 1 2 3 4 5 6 7 

我砍的代碼,並研究它的線我已經在這一行至今就讀線.. heheh

所以這裏的我想問的代碼。

public class PyramidCharForLup { 

    public static void main(String[] args) 
    { 
     int x = 7; 
     for (int i = 1; i <= x; i++) { 
     for (int j = 1; j <= x - i; j++) 
      System.out.print(j); 

     } 
    } 
} 

的這個輸出是123456123451234123121澄清,如果你是安排 123456 12345 1234 123 12 1

第一個問題:是在代碼ifor (int j = 1; j <= x - i; j++)成爲i= 1234567
第二個問題:如果增量1..2..3..5..6..7 ..是從1234567減去最後一個數字的增量,則從初始值是

1234567-1 .. 123456 - 1 ... 12345 - 1 ... 1234 - 1 ... 123 - 1 ... 12-1 ... 1-0 .... until false我是對不對?

,這就是爲什麼我得到這個輸出123456 12345 1234的原因123 12 1

+0

從1..6從1..5寫數字,那麼我想走得更遠,直到我明白,心中bugling金字塔請一起幫我這樣hehehehe .... – JustNoobWillingToLearn 2012-04-16 14:57:35

回答

1

您的代碼有兩個嵌套循環(一個循環其他內部運行)。這是發生了什麼:

  1. 你設置X到7
  2. 您正在啓動外循環,設置I = 1。由於1 < = 7進入循環。
  3. 您正在啓動內部循環,設置j = 1。由於1 < = 6(從x - i的7-1)將輸入循環。
  4. j(1)被打印。
  5. j增加1並且因爲2小於6,所以內循環繼續。
  6. j(2)被打印。

這一直持續到j是6.

  1. Ĵ(6)被打印。
  2. j增加1並且現在是7而不是< = 6,所以內部循環退出。
  3. 我增加了一個(現在是2)。
  4. 再次輸入內循環,將j設置爲1.由於j < 5(來自x-i的7-2)循環被輸入。 11 j(1)被打印。 12 j增加1並且現在爲2.因爲2 < 6,循環繼續。

這繼續下去,直到我達到7當我增加1它是8這不是< = 7所以外部循環也存在,你的程序完成。

你的程序將計數,直到它達到1..1

+0

所以我這裏不是1234567哈哈哈....我在這裏是1我是對不對?我真的很新鮮。 – JustNoobWillingToLearn 2012-04-16 15:06:22

+0

所以它不會改變初始化i = 1?因爲如果我顯示第一個循環的輸出。對於(i = 1; i <= 7,i ++)我輸出了1234567. – JustNoobWillingToLearn 2012-04-16 15:09:54

+0

好的我現在明白了。這是在我國的深夜,我的帖子可能是明天GMT + 8大聲笑。 – JustNoobWillingToLearn 2012-04-16 15:14:52