2017-05-05 40 views
0
for i in 1...6 { 

    for j in 1...7-i { 
     print(" ", terminator: "") 
    } 

    for j in 1...2*i-1 { 
     print("*", terminator: "") 
    } 
    print("") 
} 

傢伙,我不明白什麼是2號線的意義? 還行5與環爲幫助

有人可以解釋給我請非常感謝

+5

打印 「I」,在每行 「J」,它可以幫助你。 – Larme

回答

0

這是一個不錯的三角形。 :)

第一個for loop表示內部循環將執行的次數。
即:6次(1 ... 6)。

第二for loop表示在每個行的開始的空間。
它將執行7次減去外循環的當前迭代次數,由i表示。
例如,第一次迭代期間

i = 1
j將1 ...(7 - 6);即6次(1 ... 6)。
六個空白將放在第一行。

第二迭代
i = 2
j將1 ...(7 - 2);即5次(1 ... 5)。
五個白色空格將放在第二行。

不爲第三個和最後for loop:它根據外部迴路(i)添加*字符到所述輸出。
例如,第一次迭代期間
i = 1
j將1 ...(2 * 1) - 1;那是一次(1 ... 1)。
其中一個*字符將放在第一行。

第三次迭代
i = 3
j將1 ...(2 * 3) - 1;那是五次(1 ... 5)。
五個*個字符將被放在第三行。

有趣的類似代碼塊應該被放在一個遊樂場:

playground

我們可以清楚地看到發生了什麼事情。在for-in loops O/

更多信息與numeric rangesSwift documentation

+1

謝謝兄弟。這是非常好的答案。我剛剛在快速編程書中找到了練習,只是混淆了第二個循環如何工作。現在清楚。很好的答案。 –

0

這是小解釋你:

for i in 1...6 { // 1) This is loop from 1 to 6 it is the depth of the triangle. 

    for j in 1...7-i { // 2) This is empty space " " loop for filling left side of the triangle. 
     print(" ", terminator: "") 
    } 

    for j in 1...2*i-1 { // 3) This is * loop for filling of the triangle parts. 
     print("*", terminator: "") 
    } 
    print("") 
} 
  1. 我們確實在每個循環Ĵ1〜6次迭代將被改變從1至6

  2. 這個迭代填充左側空的空間,但與infomration我們應該ALW AYS留空空間與式(7 - 環1位(從1至6))

  3. 該重複填充*不與condtion三角形的(2 *循環1個位置(從1至6) - 1)