Bird
Raised Fist0
Swiftprogramming~10 mins

Labeled statements for nested loops in Swift - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Labeled statements for nested loops
Start Outer Loop
↓
Start Inner Loop
↓
Check Condition
↓
Action
↓
Check Break?
↓
Break Outer Loop
↓
End
The outer loop runs, inside it the inner loop runs. A labeled break can exit the outer loop from inside the inner loop.
Execution Sample
Swift
outerLoop: for i in 1...3 {
    for j in 1...3 {
        if i * j == 4 {
            break outerLoop
        }
        print("i=\(i), j=\(j)")
    }
}
This code runs two loops. When i*j equals 4, it breaks out of the outer loop entirely.
Execution Table
StepijCondition i*j==4ActionOutput
1111*1=1 (False)Print i=1, j=1i=1, j=1
2121*2=2 (False)Print i=1, j=2i=1, j=2
3131*3=3 (False)Print i=1, j=3i=1, j=3
4212*1=2 (False)Print i=2, j=1i=2, j=1
5222*2=4 (True)Break outerLoop
6---Exit all loops
💡 At step 5, condition i*j==4 is true, so break outerLoop exits both loops.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5Final
i-11122-
j-12312-
Key Moments - 3 Insights
Why does the break statement exit the outer loop and not just the inner loop?
Because the break uses the label 'outerLoop', it tells Swift to exit that specific loop, not just the inner one. See execution_table step 5 where break outerLoop happens.
What happens if the condition i*j==4 never becomes true?
The inner loop finishes all iterations for each i, and the outer loop continues normally. No labeled break occurs, so loops run fully.
Why is there no output after step 5?
Because the break outerLoop stops all loops immediately, so no further print statements run after step 5.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of j at step 4?
A3
B1
C2
D-
💡 Hint
Check the 'j' column in execution_table row for step 4.
At which step does the condition i*j==4 become true?
AStep 5
BStep 3
CStep 4
DStep 6
💡 Hint
Look at the 'Condition i*j==4' column in execution_table.
If we remove the label and just write 'break', what happens when i*j==4?
ACauses a compile error
BBreaks both loops
CBreaks only inner loop and continues outer loop
DSkips current iteration
💡 Hint
Recall that unlabeled break exits the nearest loop only.
Concept Snapshot
Labeled statements let you name loops.
Use 'break label' to exit that loop from inside nested loops.
Syntax: labelName: for ... { ... break labelName ... }
Without label, break exits nearest loop only.
Useful to stop multiple loops at once.
Full Transcript
This visual trace shows how labeled statements work in nested loops in Swift. The outer loop runs from 1 to 3, and inside it the inner loop runs from 1 to 3. At each step, the product i*j is checked. When it equals 4, the break with label 'outerLoop' stops both loops immediately. The execution table shows each step's variables and actions. The variable tracker shows how i and j change. Key moments clarify why the labeled break exits the outer loop, what happens if the condition never triggers, and why no output appears after the break. The quiz tests understanding of variable values at steps, when the condition triggers, and the effect of removing the label. The snapshot summarizes how to use labeled breaks to control nested loops in Swift.

Practice

(1/5)
1. What is the main purpose of using labeled statements in nested loops in Swift?
easy
A. To speed up the loop execution
B. To declare variables inside loops
C. To directly control which loop to break or continue
D. To automatically optimize memory usage

Solution

  1. Step 1: Understand labeled statements

    Labeled statements give a name to loops so you can refer to them directly.
  2. Step 2: Control flow in nested loops

    This naming allows breaking or continuing an outer loop from inside an inner loop without extra flags.
  3. Final Answer:

    To directly control which loop to break or continue -> Option C
  4. Quick Check:

    Labeled loops control flow directly = C [OK]
Hint: Labels let you break/continue outer loops easily [OK]
Common Mistakes:
  • Thinking labels declare variables
  • Assuming labels improve speed
  • Confusing labels with memory optimization
2. Which of the following is the correct syntax to label a loop named 'outerLoop' in Swift?
easy
A. for outerLoop in 1...3 { }
B. outerLoop: for i in 1...3 { }
C. for i in 1...3 outerLoop: { }
D. label outerLoop for i in 1...3 { }

Solution

  1. Step 1: Recall label syntax in Swift

    Labels are written as a name followed by a colon before the loop statement.
  2. Step 2: Match syntax to options

    outerLoop: for i in 1...3 { } correctly places 'outerLoop:' before the for loop.
  3. Final Answer:

    outerLoop: for i in 1...3 { } -> Option B
  4. Quick Check:

    Label name + colon before loop = A [OK]
Hint: Label name ends with colon before loop starts [OK]
Common Mistakes:
  • Placing label after the loop
  • Using 'label' keyword (not valid)
  • Putting label inside loop braces
3. What will be the output of the following Swift code?
outerLoop: for i in 1...2 {
    for j in 1...3 {
        if j == 2 {
            break outerLoop
        }
        print("\(i),\(j)")
    }
}
medium
A. 1,1 1,2 1,3 2,1 2,2 2,3
B. 1,1 1,2
C. 1,1 2,1
D. 1,1

Solution

  1. Step 1: Understand loop and break behavior

    The outer loop runs i from 1 to 2, inner loop j from 1 to 3. When j == 2, break outerLoop stops the outer loop entirely.
  2. Step 2: Trace iterations

    First iteration: i=1, j=1 prints "1,1". When j=2, break outerLoop triggers, stopping all loops immediately.
  3. Final Answer:

    1,1 -> Option D
  4. Quick Check:

    Break outer loop at j=2 stops all = D [OK]
Hint: Break with label stops outer loop immediately [OK]
Common Mistakes:
  • Thinking break only stops inner loop
  • Expecting all prints before break
  • Ignoring label effect on break
4. Identify the error in this Swift code using labeled statements:
outer: for i in 1...2 {
    for j in 1...2 {
        if j == 2 {
            break outerLoop
        }
        print(i, j)
    }
}
medium
A. Label 'outerLoop' is not defined
B. Syntax error: missing colon after label
C. Cannot use break inside nested loops
D. No error, code runs fine

Solution

  1. Step 1: Check label definition

    The loop is labeled 'outer', but break tries to use 'outerLoop' which is undefined.
  2. Step 2: Understand label usage

    Labels must match exactly. Using a different name causes a compile error.
  3. Final Answer:

    Label 'outerLoop' is not defined -> Option A
  4. Quick Check:

    Break label must match defined label = B [OK]
Hint: Break label must exactly match loop label name [OK]
Common Mistakes:
  • Using different label names
  • Forgetting colon after label
  • Thinking break can't be used in nested loops
5. Given the task to print all pairs (i, j) where i and j range from 1 to 3, but stop all loops immediately when i + j equals 4, which Swift code correctly uses labeled statements to achieve this?
hard
A. outerLoop: for i in 1...3 { for j in 1...3 { if i + j == 4 { break outerLoop } print("\(i),\(j)") } }
B. for i in 1...3 { for j in 1...3 { if i + j == 4 { break } print(i, j) } }
C. outerLoop: for i in 1...3 { for j in 1...3 { if i + j == 4 { continue outerLoop } print(i, j) } }
D. for i in 1...3 { for j in 1...3 { if i + j == 4 { continue } print(i, j) } }

Solution

  1. Step 1: Understand the stopping condition

    We want to stop all loops immediately when i + j == 4, so we must break the outer loop.
  2. Step 2: Use labeled break correctly

    outerLoop: for i in 1...3 { for j in 1...3 { if i + j == 4 { break outerLoop } print("\(i),\(j)") } } uses 'break outerLoop' to stop the outer loop from inside the inner loop, which is correct.
  3. Step 3: Check other options

    for i in 1...3 { for j in 1...3 { if i + j == 4 { break } print(i, j) } } breaks only inner loop; C uses continue which skips iterations but doesn't stop loops; D continues inner loop only.
  4. Final Answer:

    Code that breaks outerLoop when i + j == 4 -> Option A
  5. Quick Check:

    Labeled break stops all loops = A [OK]
Hint: Use labeled break to stop outer loop from inner loop [OK]
Common Mistakes:
  • Using break without label stops only inner loop
  • Using continue instead of break
  • Not labeling the outer loop
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard