Namespaces
Variants

break statement

From cppreference.net

Provoque la terminaison de la boucle for , while ou do-while englobante ou de l'instruction switch .

Utilisé lorsqu'il est autrement difficile de terminer la boucle en utilisant l'expression conditionnelle et les instructions conditionnelles.

Table des matières

Syntaxe

attr-spec-seq  (optionnel) break ;
attr-spec-seq - (C23) liste optionnelle d' attributs , appliquée à l'instruction break

N'apparaît que dans l' instruction du corps d'une boucle ( while , do-while , for ) ou dans l' instruction d'une switch .

Explication

Après cette instruction, le contrôle est transféré à l'instruction ou à la déclaration suivant immédiatement la boucle ou le switch englobant, comme si par goto .

Mots-clés

break

Notes

Une instruction break ne peut pas être utilisée pour sortir de plusieurs boucles imbriquées. L' goto statement peut être utilisé à cette fin.

Exemple

#include <stdio.h>
int main(void)
{
    int i = 2;
    switch (i)
    {
        case 1: printf("1");
        case 2: printf("2");   // i==2, donc l'exécution commence à cette étiquette case
        case 3: printf("3");
        case 4:
        case 5: printf("45");
                break;         // l'exécution des cas suivants est terminée
        case 6: printf("6");
    }
    printf("\n");
    // Comparer les sorties de ces deux boucles for imbriquées.
    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++) // seule cette boucle est quittée par break
        {
            if (k == 2)
                break;
            printf("%d%d ", j,k);
        }
    }
}

Sortie possible :

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

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 6.8.6.3 L'instruction break (p: 111)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 6.8.6.3 L'instruction break (p: 153)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 6.8.6.3 L'instruction break (p: 138)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 3.6.6.3 L'instruction break

Voir aussi

(C23)
indique que la chute depuis l'étiquette de cas précédente est intentionnelle et ne devrait pas être diagnostiquée par un compilateur qui avertit sur les chutes
(spécificateur d'attribut)
Documentation C++ pour break statement