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 menu de sistema 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 menu 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 sub-menu, 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.