break
statement
Provoca que el bucle for , range-for , while o do-while envolvente o la sentencia switch terminen.
Se utiliza cuando resulta incómodo terminar el bucle utilizando la expresión de condición y las sentencias condicionales.
Contenidos |
Sintaxis
attr
(opcional)
break
;
|
|||||||||
| attr | - | (since C++11) cualquier número de attributes |
Explicación
Solo aparece dentro de la
sentencia
del cuerpo de un bucle (
while
,
do-while
,
for
) o dentro de la
sentencia
de un
switch
.
Después de esta sentencia, el control se transfiere a la sentencia inmediatamente posterior al bucle o switch envolvente. Como en cualquier salida de bloque, todos los objetos de almacenamiento automático declarados en la sentencia compuesta envolvente o en la
condición
de un bucle/switch se destruyen, en orden inverso a su construcción, antes de la ejecución de la primera línea siguiente al bucle envolvente.
Notas
Una sentencia break no puede utilizarse para salir de múltiples bucles anidados. La sentencia goto puede utilizarse para este propósito.
Palabras clave
Ejemplo
#include <iostream> int main() { int i = 2; switch (i) { case 1: std::cout << "1"; // <---- posible advertencia: fall through case 2: std::cout << "2"; // la ejecución comienza en esta etiqueta case (+advertencia) case 3: std::cout << "3"; // <---- posible advertencia: fall through case 4: // <---- posible advertencia: fall through case 5: std::cout << "45"; // break; // la ejecución de sentencias subsiguientes termina case 6: std::cout << "6"; } std::cout << '\n'; for (char c = 'a'; c < 'c'; c++) { for (int i = 0; i < 5; i++) // solo este bucle se ve afectado por break { // if (i == 2) // break; // std::cout << c << i << ' '; // } } std::cout << '\n'; }
Salida posible:
2345 a0 a1 b0 b1
Véase también
[[
fallthrough
]]
(C++17)
|
indica que la caída desde la etiqueta de caso anterior es intencional y no debe ser diagnosticada por un compilador que advierte sobre caídas
(especificador de atributo) |
|
Documentación de C
para
break
|
|