Test - if else

Pas de grande différence avec le Python. Par exemple :

code python

# python
if x == 0:
    print("x est nul")
else :
    print("x n'est pas nul")

code c

// c
// ne pas oublier #include<stdio.h> pour le printf et
// bien sûr la fonction main.
if (x == 0) {
    printf("x est nul\n");
} else {
    printf("x n'est pas nul\n");
}

Ce sont les { } qui indiquent le début et la fin des structures.

Néanmoins, pour plus de lisibilité, on s'astreint à utiliser des indentations.

Le placement des indentations et des accolades donne lieu à des préférences et usages différents. Pour en avoir une idée, consultez cet article. J'utilise plutôt le style K&R.

code c faux

// code FAUX !!!
// le ; après le if ne devrait pas être là
if (x == 0); {
    printf("x est nul\n");

Les opérateurs de test

En Python on pourrait écrire :

code python

if x >= 0 and x < 10:
    print("x est dans [0;10[")

En C cela devient :

code c

if (x >= 0 && x < 10) {
    printf("x est dans [0;10[\n");
}

Le symbole && est utilisé pour le ET. Cela ne doit pas trop vous surprendre car Python utilise aussi le && mais pour le cas d'un ET bitwise.

De la même façon, le OU est obtenu avec || et le NON avec !.

Opérateurs séquentiels

Les opérateurs sont séquentiels comme en Python. Par exemple :

int x = 0;
if (x != 0 && 1/x < 10){
    print("pwet\n");
}

Dans ce cas aucun problème. En effet, x vaut 0, le test x != 0 est donc faux et donc on n'examine même pas la suite du && car dans un ET, si un des éléments est faux, le résultat sera faux. Le calcul 1/x posant problème dans le cas x == 0 n'est donc pas effectué. Ce mécanisme est extrêmement utile.