Foundations
Loops
Loops repeat a block of code. A for loop is a direct way to walk through a
range of numbers.
Sum a range
loops.swift
Replay: real traced execution (multi-file project)
let limit = 4
var total = 0
for value in 1...limit {
total = total + value
}
print("limit=\(limit)")
print("total=\(total)")
let limit = 3
var total = 0
for value in 1...limit {
total = total + value
}
print("limit=\(limit)")
print("total=\(total)")
let limit = 6
var total = 0
for value in 1...limit {
total = total + value
}
print("limit=\(limit)")
print("total=\(total)")
limit ← 4, total ← 0
1let limit→ 4 = 4 //@limit=3, 62var total→ 0 = 0total ← 1
pass 1 of 44for value1 in 1...limit4 {5 total→ 1 = total + value16}All 4 passes — pass 1 is the card above pass valuetotal1 1 0 → 1 2 2 1 → 3 3 3 3 → 6 4 4 6 → 10 print("limit=\(limit)")
8print("limit=\(limit4)")9print("total=\(total10)")outputlimit=4 total=10
limit ← 3, total ← 0
1let limit→ 3 = 32var total→ 0 = 0total ← 1
pass 1 of 34for value1 in 1...limit3 {5 total→ 1 = total + value16}All 3 passes — pass 1 is the card above pass valuetotal1 1 0 → 1 2 2 1 → 3 3 3 3 → 6 print("limit=\(limit)")
8print("limit=\(limit3)")9print("total=\(total6)")outputlimit=3 total=6
limit ← 6, total ← 0
1let limit→ 6 = 62var total→ 0 = 0total ← 1
pass 1 of 64for value1 in 1...limit6 {5 total→ 1 = total + value16}All 6 passes — pass 1 is the card above pass valuetotal1 1 0 → 1 2 2 1 → 3 3 3 3 → 6 4 4 6 → 10 5 5 10 → 15 6 6 15 → 21 print("limit=\(limit)")
8print("limit=\(limit6)")9print("total=\(total21)")outputlimit=6 total=21
Follow the Loop
limitstarts at4.totalstarts at0.- The range
1...limitvisits1,2,3, and4. - Each value is added to
total. - The program prints
limit=4andtotal=10. | limit | values added | total | | --- | --- | --- | | 3 | 1, 2, 3 | 6 | | 4 | 1, 2, 3, 4 | 10 | | 6 | 1, 2, 3, 4, 5, 6 | 21 |
closed range
`1...limit` includes both endpoints.
Exercise: loops.swift
Reproduce total=10 for limit 4, then try limit 3 and 6 and predict each total before running it.