Les structures conditionnelles
CHAPITRE 9
219
Elle peut être écrite à l’aide de l’opérateur ternaire ainsi :
messageBalle.text = balle.x<400 ? "Bas Gauche" : "Bas Droite";
Si cette syntaxe vous gène, vous pouvez également placer le test entre parenthèses.
messageBalle.text = (balle.x<400) ? "Bas Gauche" : "Bas Droite";
En outre, vous pouvez effectuer un test avec plusieurs conditions inclusives ou exclusives.
Pour conclure sur ce développement, ajoutons que la valeur à récupérer n’est pas toujours
de type String, comme c’est le cas dans l’exemple précédent ; vous pouvez faire appel à
l’opérateur ternaire dans de nombreux cas.
Affectation d’une valeur à une variable :
resultat = puce.x>250 ? 25 : 35;
reduction = nombrePersonnes>=3? 25 : 15;
Affectation d’une valeur à un texte dynamique :
messageAccord.text = reponseCandidat.text=="Oui" ? "Bonne réponse" : "Mauvaise réponse";
Réglage d’une propriété :
carte.rotation = carte.alpha<0.5? 45 : -45;
Comparer deux chaînes de caractères
La comparaison de chaînes de caractères est parfois délicate. Considérons l’exemple
ci-dessous.
if (reponseCandidat.text=="Oui") {
messageAccord.text="Accord accepté";
} else {
messageAccord.text="Accord refusé";
}
A priori, ce script ne contient aucune erreur. Vous avez tout à fait raison, la syntaxe est
bonne, et pourtant l’utilisateur risque de voir s’afficher Accord refusé sur la scène s’il
tape oui ou OUI dans le texte de saisie reponseCandidat. Observez bien la casse du texte sur
la première ligne d’instruction : nous avons écrit if (reponseCandidat.text=="Oui"), ce
qui signifie que l’utilisateur doit très précisément saisir sa réponse avec un O majuscule et
les lettres u et i en minuscules. Dans le cas contraire, le test renvoie la valeur false. Pour
éviter ce problème, ce qui revient à dire que nous ne voulons pas que le programme
tienne compte de la casse de la réponse, vous devez effectuer la conversion suivante :
if (reponseCandidat.text.toUpperCase()=="OUI") {
messageAccord.text="Accord accepté";
} else {
messageAccord.text="Accord refusé";
}
Précédent

- 247/426

Suivant