Namespaces
Variants

break statement

From cppreference.net

Provoca que el for , while o do-while circundante o la switch statement terminen.

Se utiliza cuando resulta incómodo terminar el bucle utilizando la expresión de condición y las sentencias condicionales.

Contenidos

Sintaxis

attr-spec-seq  (opcional) break ;
attr-spec-seq - (C23) lista opcional de atributos , aplicados a la sentencia break

Solo aparece dentro de la sentencia del cuerpo de un bucle ( while , do-while , for ) o dentro de la sentencia de un switch .

Explicación

Después de esta declaración, el control se transfiere a la declaración o definición inmediatamente posterior al bucle o switch envolvente, como si fuera mediante goto .

Palabras clave

break

Notas

Una sentencia break no puede utilizarse para salir de múltiples bucles anidados. La goto statement puede utilizarse para este propósito.

Ejemplo

#include <stdio.h>
int main(void)
{
    int i = 2;
    switch (i)
    {
        case 1: printf("1");
        case 2: printf("2");   // i==2, por lo que la ejecución comienza en esta etiqueta case
        case 3: printf("3");
        case 4:
        case 5: printf("45");
                break;         // se termina la ejecución de los casos subsiguientes
        case 6: printf("6");
    }
    printf("\n");
    // Comparar las salidas de estos dos bucles for anidados.
    for (int j = 0; j < 2; j++)
        for (int k = 0; k < 5; k++)
            printf("%d%d ", j,k);
    printf("\n");
    for (int j = 0; j < 2; j++)
    {
        for (int k = 0; k < 5; k++) // solo este bucle es interrumpido por break
        {
            if (k == 2)
                break;
            printf("%d%d ", j,k);
        }
    }
}

Salida posible:

2345
00 01 02 03 04 10 11 12 13 14
00 01 10 11

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 6.8.6.3 La sentencia break (p: 111)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 6.8.6.3 La sentencia break (p: 153)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 6.8.6.3 La sentencia break (p: 138)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 3.6.6.3 La sentencia break

Véase también

(C23)
indica que la caída desde la etiqueta case 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 statement