Break, continue, and early answers
Distinguish leaving a loop from skipping one iteration, without losing required input.
Three different control actions
break immediately exits the nearest loop or switch. continue skips the remaining body of the current iteration. return 0 inside main ends the program’s work in main. These instructions are not interchangeable.
This example prints 1, 2, 3, and DONE, each on its own line. At i = 4, break occurs before the output inside the loop. Execution resumes after the loop.
#include <iostream>
int main() {
for (int i = 1; i <= 6; ++i) {
if (i == 4) { break; }
std::cout << i << '\n';
}
std::cout << "DONE\n";
return 0;
}Continue still needs progress
In a for loop, continue proceeds to the update and then the next condition check. In a while loop, it goes directly to the next check. If the only update is below continue in a while body, that update may be skipped forever.
Do not stop consuming a fixed-length input list simply because the answer is known. Unread values can become the next test case’s input. Record the answer in a flag and continue the required reads; early exit is safe when searching data already stored.
Optional application: a small primality test
A prime number is at least 2 and has no positive divisors besides 1 and itself. For the small source bound 0 ≤ n ≤ 1000, begin with prime = (n >= 2), then test divisors from 2 through n − 1. One divisor is enough to set false and break.
For n = 2 the loop has no iterations and the initial true answer is correct. For 0 and 1 it starts false. This deliberately simple method can check almost n divisors; do not reuse it for enormous bounds without reconsidering the algorithm.
In the example, replacing break with continue at i == 4 would print which numbers before DONE?
Turn the idea into code
Optional: implement the primality test for 0 ≤ n ≤ 1000. Test 0, 1, 2, 9, and 17.
Give me a hint
The starting flag handles values below 2. A matching divisor makes further checks unnecessary.
Show the explained solution
The outputs for the five suggested inputs are NO, NO, YES, NO, YES. For eligible n, the loop examines every possible divisor other than 1 and n until it finds a counterexample.
#include <iostream>
int main() {
int n = 0;
std::cin >> n;
bool prime = (n >= 2);
for (int divisor = 2; divisor < n; ++divisor) {
if (n % divisor == 0) {
prime = false;
break;
}
}
std::cout << (prime ? "YES" : "NO") << '\n';
return 0;
}Your notes
Mark complete when you can explain it yourself.