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
    110 1
    221 3
    333
    443 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
    110 1
    222
    331 4
    444 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
    110 1
    221 3
    333 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