Metadata

  • Date :: 11-04-2025
  • Tags :: cpp

Notes

Detailed Notes on the break and continue Keywords in C++

In C++, the break and continue keywords are used to control the flow of loops and conditional statements. These keywords provide a way to alter the regular flow of execution, allowing the programmer to have more control over how loops behave.

The break Keyword

The break keyword is used to terminate a loop or switch statement prematurely. Once break is executed, the loop or switch statement will be exited, and the program will continue to execute the code after the loop or switch.

Use Cases of break:

  • Exiting a loop early: If a certain condition is met, you can use break to stop further iterations of a loop.
  • Switch statement: In a switch case, break is used to exit the switch after a matching case is found and its code is executed.

Example:

#include <iostream>
using namespace std;
 
int main() {
    for (int i = 1; i <= 20; i++) {
        if (i == 13) {
            break;  // Breaks the loop when i is 13
        }
        cout << i << endl;
    }
    return 0;
}
 

Explanation:

  • In this example, we have a for loop that counts from 1 to 20.
  • The loop continues as long as the condition i <= 20 is true, but as soon as i equals 13, the break keyword is executed.
  • When break is encountered, the loop stops immediately, and the program exits the loop without printing the number 13 or continuing to 14 through 20.

Output:

1
2
3
4
5
6
7
8
9
10
11
12

The continue Keyword

The continue keyword is used to skip the current iteration of a loop and immediately move to the next iteration. Unlike break, which exits the loop entirely, continue only skips the remaining code in the current loop iteration and proceeds to the next one.

Use Cases of continue:

  • Skipping specific iterations: You may want to skip an iteration when a certain condition is met but still continue with the rest of the loop.

Example:

#include <iostream>
using namespace std;
 
int main() {
    for (int i = 1; i <= 20; i++) {
        if (i == 13) {
            continue;  // Skips the iteration when i is 13
        }
        cout << i << endl;
    }
    return 0;
}
 

Explanation:

  • In this example, the for loop iterates from 1 to 20.
  • When i is equal to 13, the continue statement is executed. This causes the current iteration to be skipped, meaning the number 13 is not printed.
  • The loop continues with the next iteration, which is 14, and so on until it reaches 20.

Output:

1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19
20

Key Differences Between break and continue

  • break: Exits the loop entirely, ending further iterations.
  • continue: Skips the current iteration, but the loop continues with the next iteration.

Additional Examples and Use Cases

Here are a couple of more examples that demonstrate the practical uses of break and continue in loops.

Example of break in a switch statement:

#include <iostream>
using namespace std;
 
int main() {
    int day = 3;
 
    switch(day) {
        case 1:
            cout << "Monday" << endl;
            break;
        case 2:
            cout << "Tuesday" << endl;
            break;
        case 3:
            cout << "Wednesday" << endl;
            break;  // Exits the switch statement after case 3
        case 4:
            cout << "Thursday" << endl;
            break;
        default:
            cout << "Invalid day" << endl;
    }
 
    return 0;
}
 

Explanation:

  • In this example, the switch statement checks the value of day.
  • When day is 3, the program prints β€œWednesday” and then exits the switch statement due to the break.
  • Without the break, the program would continue to execute the subsequent case blocks after matching case 3.

Output:

Wednesday

Example of continue in a loop:

#include <iostream>
using namespace std;
 
int main() {
    for (int i = 1; i <= 10; i++) {
        if (i % 2 == 0) {
            continue;  // Skip even numbers
        }
        cout << i << " ";
    }
    return 0;
}
 

Explanation:

  • This loop iterates from 1 to 10, printing only the odd numbers.
  • When the value of i is even (i.e., when i % 2 == 0), the continue statement skips the current iteration, and the number is not printed.

Output:

1 3 5 7 9

Performance Considerations

Both break and continue are very efficient in controlling the flow of loops, but they should be used carefully to avoid overly complex or hard-to-read code. Excessive use of these keywords may lead to confusing code structures.

  • break is useful for terminating a loop early when a condition is met. For example, it can stop unnecessary iterations if a desired condition is found before the loop has completed all its iterations.
  • continue is helpful when you need to skip certain iterations based on specific conditions, but you still need the loop to continue with the rest of the iterations.

Best Practices

  • Clarity: Use break and continue in moderation, as they can make code harder to understand if overused or used improperly. It’s important to maintain clarity in the flow of control.
  • Avoid nested loops: If using break and continue in nested loops, be cautious, as it can be confusing to know which loop is being affected.
  • Always ensure that loops have clear exit conditions: Use break to prevent infinite loops and continue to avoid unnecessary processing.

Conclusion

The break and continue keywords are powerful tools for controlling the flow within loops and conditional structures. Understanding when and how to use them effectively can greatly improve the control you have over your program’s execution, helping you write cleaner, more efficient code.


References