Dentro del cuerpo de cualquiera de las estructuras de bucle while, do-while, o for, se puede controlar el flujo del bucle utilizando break y continue. break interrumpe el bucle sin ejecutar el resto de las sentencias de esa iteración. continue detiene la ejecución de la iteración actual, vuelve al principio del bucle y comienza la siguiente iteración.
A modo de ejemplo de break y continue, este programa es un sistema de menús muy simple:
//: C03:Menu.cpp // Simple menu program demonstrating // the use of "break" and "continue" #include <iostream> using namespace std; int main() { char c; // To hold response while(true) { cout << "MAIN MENU:" << endl; cout << "l: left, r: right, q: quit -> "; cin >> c; if(c == 'q') break; // Out of "while(1)" if(c == 'l') { cout << "LEFT MENU:" << endl; cout << "select a or b: "; cin >> c; if(c == 'a') { cout << "you chose 'a'" << endl; continue; // Back to main menu } if(c == 'b') { cout << "you chose 'b'" << endl; continue; // Back to main menu } else { cout << "you didn't choose a or b!" << endl; continue; // Back to main menu } } if(c == 'r') { cout << "RIGHT MENU:" << endl; cout << "select c or d: "; cin >> c; if(c == 'c') { cout << "you chose 'c'" << endl; continue; // Back to main menu } if(c == 'd') { cout << "you chose 'd'" << endl; continue; // Back to main menu } else { cout << "you didn't choose c or d!" << endl; continue; // Back to main menu } } cout << "you must type l or r or q!" << endl; } cout << "quitting menu..." << endl; } ///:~
Listado 3.6. C03/Menu.cpp
Si el usuario selecciona q en el menú principal, se utiliza la palabra reservada break para salir, de otro modo, el programa continúa ejecutándose indefinidamente. Después de cada selección de submenú, se usa la palabra reservada continue para volver atrás hasta el comienzo del bucle while.
La sentencia while(true) es el equivalente a decir «haz este bucle para siempre». La sentencia break permite romper este bucle infinito cuando el usuario teclea q.