Namespaces
Variants

if statement

From cppreference.net

Exécute conditionnellement du code.

Utilisé lorsque le code doit être exécuté uniquement si une certaine condition est vraie.

Table des matières

Syntaxe

attr-spec-seq  (optionnel) if ( expression ) instruction-vraie (1)
attr-spec-seq  (optionnel) if ( expression ) instruction-vraie else instruction-fausse (2)
attr-spec-seq - (C23) une liste optionnelle d' attributs , appliquée à l'instruction if
expression - une expression de tout type scalaire
statement-true - toute instruction (souvent une instruction composée), qui est exécutée si expression est différente de 0
statement-false - toute instruction (souvent une instruction composée), qui est exécutée si expression est égale à 0

Explication

expression doit être une expression de tout type scalaire .

Si expression est différent de zéro, statement-true est exécuté.

Dans la forme (2) , si expression est égale à zéro entier, statement-false est exécuté.

Comme toutes les autres instructions de sélection et d'itération, l'instruction if complète possède sa propre portée de bloc :

enum {a, b};
int different(void)
{
    if (sizeof(enum {b, a}) != sizeof(int))
        return a; // a == 1
    return b; // b == 0 in C89, b == 1 in C99
}
(depuis C99)

Notes

Le else est toujours associé au if précédent le plus proche (en d'autres termes, si statement-true est également une instruction if , alors cette instruction if interne doit également contenir une partie else ):

int j = 1;
if (i > 1)
    if(j > 2)
        printf("%d > 1 et %d > 2\n", i, j);
    else // ce else fait partie du if (j > 2), pas du if (i > 1)
        printf("%d > 1 et %d <= 2\n", i, j);
Traduction effectuée en respectant : - Conservation de tous les tags HTML et attributs - Non-traduction du contenu dans les balises `
`
- Préservation des termes spécifiques C++ (`int`, `if`, `else`, `printf`)
- Traduction uniquement du texte anglais en français ("and" → "et", "this else is part of" → "ce else fait partie du")

Si statement-true est atteint via une goto , statement-false n'est pas exécuté.

Mots-clés

if , else

Exemple

#include <stdio.h>
int main(void)
{
    int i = 2;
    if (i > 2)
    {
        printf("i > 2 is true\n");
    }
    else
    {
        printf("i > 2 is false\n");
    }
    i = 3;
    if (i == 3)
        printf("i == 3\n");
    if (i != 3)
        printf("i != 3 is true\n");
    else
        printf("i != 3 is false\n");
}

Sortie :

i > 2 is false
i == 3
i != 3 is false

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 6.8.5.2 L'instruction if (p: 154)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 6.8.4.1 L'instruction if (p: 108-109)
  • Norme C11 (ISO/IEC 9899:2011):
  • 6.8.4.1 L'instruction if (p: 148-149)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 6.8.4.1 L'instruction if (p: 133-134)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 3.6.4.1 L'instruction if

Voir aussi

Documentation C++ pour if statement