Les structures de contrôle
Qu’est-ce qu’une condition ?
Les conditions permettent de tester des variables et d’adapter le comportement d’un programme en fonction de la situation. Par exemple, dans un programme bancaire, il est possible d’autoriser une opération bancaire uniquement si le solde du compte est positif.
1. if… else
Il est possible de créer des conditions assez fines en testant par exemple une égalité, une différence, la supériorité et l’infériorité (éventuellement strictes).
a. Les symboles de comparaison
Voici les symboles qui permettent d’exprimer les comparaisons dans les conditions.
Symbole |
Signification |
== |
est égal à |
> |
est supérieur à |
< |
est inférieur à |
>= |
est supérieur ou égal à |
<= |
est inférieur ou égal à |
!= |
est différent de |
b. if
Débutons par une condition toute simple. Pour exprimer une condition en français, on utilise le mot "si" : "si le solde du compte en banque est positif". En anglais, "si" se traduit par "if". C’est donc le mot-clé if que nous retrouvons dans les langages informatiques et en Kotlin en particulier.
À partir de maintenant, c’est l’anglais qui sera privilégié dans les exemples de code, que ce soit au niveau des noms des variables, des commentaires ou des éléments à afficher dans le terminal lors de l’éxécution.
Pour déclarer une condition, il convient d’écrire dans l’ordre le mot-clé if, suivi de la comparaison entre parenthèses, puis des instructions à exécuter entre accolades si la condition est vraie :
if(/*comparaison */)
{
//instructions
}
Complétons cette syntaxe en écrivant la condition "si le solde du compte en banque est positif" :
fun main()
{
val bankAccount = 17
if (bankAccount > 0)
{
print("operation done!")
}
}
Si nous exécutons ce code, le texte operation done! s’affiche dans le terminal. Il s’agit bien du résultat attendu puisque 17 est strictement supérieur à...
Qu’est-ce qu’une boucle ?
Les boucles sont un autre élément indispensable à la construction d’un programme informatique. Une boucle permet de répéter plusieurs fois une instruction. Par exemple, si nous souhaitons afficher dix fois une même phrase dans le terminal, plutôt que de saisir dix fois l’instruction, nous écrirons une boucle qui répétera dix fois l’instruction que nous aurons écrite une seule fois.
1. La boucle while
Une boucle while est une boucle qui s’exécute tant qu’une condition est vraie.
Pour déclarer une boucle while, il convient d’écrire dans l’ordre le mot-clé while, suivi de la comparaison entre parenthèses, puis des instructions à exécuter entre accolades si la condition est vraie :
while (/* comparaison */)
{
//instructions
}
Le programme suivant simule le lancement d’une fusée. Un compteur est initialisé à 10, et tant que le nombre 0 n’est pas atteint, alors ce compteur est décrémenté.
fun main()
{
var counter = 10
println("Lancement de la fusée dans...")
while (counter >= 0)
{
println(counter)
counter--
}
println("Décollage !")
}
Le programme met moins de 10 secondes à s’exécuter. Nous aurons l’occasion, dans la suite de cet ouvrage, de voir comment "mettre en pause" un programme pour que l’affichage se fasse avec 1 seconde d’intervalle !
L’exécution du programme produit l’affichage suivant :
Lancement de la fusée dans...
10
9
8
7
6
5
4
3
2
1
0
Décollage !
Voyons comment se déroule le programme, étape par étape :
1. |
La variable counter est initialisée à la valeur 10. |
2. |
La boucle while vérifie la condition. |
3. |
10 est bien supérieur ou égal à 0, le programme rentre donc dans la boucle. |
4. |
La valeur de la variable counter est affichée dans le terminal grâce à l’instruction println. |
5. |
La valeur 1 est retirée... |
En résumé
-
Les conditions sont essentielles à la création des programmes afin de personnaliser leur exécution en fonction de la valeur d’une variable.
-
Les mots-clés if, else if, et else signifient "si", "sinon si" et "sinon".
-
On peut écrire autant de else if que l’on souhaite.
-
Le mot-clé when est une puissante alternative au traditionnel if ainsi qu’à une potentielle succession de nombreux else if.
-
Les valeurs des blocs if, else if, else et when peuvent être stockées dans des variables.
-
Les boucles permettent de répéter des instructions autant de fois que nécessaire.
-
Il existe trois boucles en Kotlin : while, do... while et for.
-
On privilégie la boucle while lorsqu’on ne connaît pas le nombre d’itérations de la boucle en avance et que celle-ci n’a pas forcément besoin d’être exécutée au moins une fois.
-
On privilégie la boucle do.. .while lorsqu’on ne connaît pas le nombre d’itérations de la boucle en avance, mais que celle-ci doit s’exécuter au moins une fois.
-
On privilégie la boucle for lorsqu’on connaît le nombre d’itérations de la boucle en avance.