Salut,
Dans le corps d'une méthode, les accolades marquent des blocs de code. Dans le cadre de structures comme le while, le for, le if, etc, le bloc est associé à la structure. Lorsqu'il n'y a pas de bloc, une seule ligne de code est associé à la structure.
Ainsi :
1 2 3
| int i=10;
while(i > 0) i--;
System.out.println( "Résultat : " + i ); |
décrémente i tant que i est supérieur à 0, puis affiche la valeur de i : la seule ligne exécutée dans la boucle while est i--.
Le résultat de l'exécution est donc :
Alors que :
1 2 3 4 5
| int i=10;
while(i > 0) {
i--;
System.out.println( "Résultat : " + i )
} |
affiche en plus chaque valeur à chaque décrémentation, parce que toutes les lignes entre { et } sont exécutées dans la boucle while, donc i--; et System.out.println( i );.
Le résultat est donc
Résultat : 9
Résultat : 8
Résultat : 7
Résultat : 6
Résultat : 5
Résultat : 4
Résultat : 3
Résultat : 2
Résultat : 1
Résultat : 0
Attention, parce qu'on peut aussi avoir :
1 2 3 4
| int i=10;
while(i > 0);
i--;
System.out.println( i ); |
Dans ce cas, il n'y a pas de code exécuté dans la boucle while (regarde bien le ; juste après qui termine la ligne de code associée au while) : on a une boucle infinie ici, parce qu'on boucle tant que i>0 alors que i ne varie pas dans la boucle.
Partager