continue skips to the next loop iteration, while break exits the loop.

Skip or stop

skip
break_continue.swift
Replay: real traced execution (multi-file project)
let skip = 3
let numbers = [1, 2, 3, 4, 5]
var total = 0

for number in numbers {
    if number == skip {
        continue
    }
    if number > 4 {
        break
    }
    total = total + number
}

print("skip=\(skip)")
print("total=\(total)")
let skip = 2
let numbers = [1, 2, 3, 4, 5]
var total = 0

for number in numbers {
    if number == skip {
        continue
    }
    if number > 4 {
        break
    }
    total = total + number
}

print("skip=\(skip)")
print("total=\(total)")
let skip = 4
let numbers = [1, 2, 3, 4, 5]
var total = 0

for number in numbers {
    if number == skip {
        continue
    }
    if number > 4 {
        break
    }
    total = total + number
}

print("skip=\(skip)")
print("total=\(total)")
  1. skip ← 3, numbers ← [1, 2, 3, 4, 5], total ← 0

    1let skip→ 3 = 3  //@skip=2, 42let numbers→ [1, 2, 3, 4, 5] = [1, 2, 3, 4, 5]3var total→ 0 = 0
  2. total ← 1

    pass 1 of 5
    5for number1 in numbers[1, 2, 3, 4, 5] {6    if number == skip {7        continue8    }9    if number > 4 {10        break11    }12    total→ 1 = total + number113}
    All 5 passes — pass 1 is the card above
    passnumberskiptotal
    11—0 → 1
    22—1 → 3
    333—
    44—3 → 7
    55——
  3. if number == skip

    5for number in numbers {6    if number3 == skip3 {7        continue8    }
  4. if number > 4

    8}9if number5 > 4 {10    break11}
  5. print("skip=\(skip)")

    15print("skip=\(skip3)")16print("total=\(total7)")
    outputskip=3
    total=7
  1. skip ← 2, numbers ← [1, 2, 3, 4, 5], total ← 0

    1let skip→ 2 = 22let numbers→ [1, 2, 3, 4, 5] = [1, 2, 3, 4, 5]3var total→ 0 = 0
  2. total ← 1

    pass 1 of 5
    5for number1 in numbers[1, 2, 3, 4, 5] {6    if number == skip {7        continue8    }9    if number > 4 {10        break11    }12    total→ 1 = total + number113}
    All 5 passes — pass 1 is the card above
    passnumberskiptotal
    11—0 → 1
    222—
    33—1 → 4
    44—4 → 8
    55——
  3. if number == skip

    5for number in numbers {6    if number2 == skip2 {7        continue8    }
  4. if number > 4

    8}9if number5 > 4 {10    break11}
  5. print("skip=\(skip)")

    15print("skip=\(skip2)")16print("total=\(total8)")
    outputskip=2
    total=8
  1. skip ← 4, numbers ← [1, 2, 3, 4, 5], total ← 0

    1let skip→ 4 = 42let numbers→ [1, 2, 3, 4, 5] = [1, 2, 3, 4, 5]3var total→ 0 = 0
  2. total ← 1

    pass 1 of 5
    5for number1 in numbers[1, 2, 3, 4, 5] {6    if number == skip {7        continue8    }9    if number > 4 {10        break11    }12    total→ 1 = total + number113}
    All 5 passes — pass 1 is the card above
    passnumberskiptotal
    11—0 → 1
    22—1 → 3
    33—3 → 6
    444—
    55——
  3. if number == skip

    5for number in numbers {6    if number4 == skip4 {7        continue8    }
  4. if number > 4

    8}9if number5 > 4 {10    break11}
  5. print("skip=\(skip)")

    15print("skip=\(skip4)")16print("total=\(total6)")
    outputskip=4
    total=6

Skip One, Stop After Four

  1. skip starts at 3.
  2. The loop visits 1, 2, 3, 4, and 5.
  3. When the number is 3, continue skips the add.
  4. When the number is 5, break stops the loop.
  5. The total is 1 + 2 + 4, which is 7. | Number | Action | Running total | | --- | --- | --- | | 1 | add | 1 | | 2 | add | 3 | | 3 | continue | 3 | | 4 | add | 7 | | 5 | break | 7 |
loop control Use `continue` for one skipped value and `break` when later work should not run. Both change which loop statements execute.

Exercise: break_continue.swift

Use continue to skip one number, break after four, and print the total