IX. Déclarations Conditionnelles▲
IX-A. if() (si)▲
De temps en temps, vous voudrez que votre code exécute une série d'actions seulement si une condition particulière est remplie. On fournit des mots-clés spéciaux pour le réaliser [1.2].
//[1]
// age is an integer variable that stores the user's age
if
(
age >
30
) // The > symbol means "greater than"
{
NSLog
(
@"age is older than thirty."
); //[1.4]
}
NSLog
(
@"Finished."
); //[1.6]
À la ligne [1.2], il y a une utilisation de l'instruction if(), aussi connue comme une instruction conditionnelle. Où vous reconnaîtrez les accolades des bouclées, qui contiendront tout le code à exécuter, qui sera fourni par l'expression logique entre des parenthèses si elle est égale à vrai. Ici, si la condition âge > 30 est remplie alors la chaîne de caractère [1.4] sera imprimée. Si la condition est rencontrée ou pas, la chaîne de caractère de ligne [1.6] sera imprimée, parce que l'instruction se situe à l'extérieur des accolades bouclées du if().
IX-B. if() else() (si, sinon)▲
Nous pouvons aussi fournir un jeu alternatif d'instructions si la condition n'est pas rencontrée, utilisant un if ... else à la déclaration [2].
//[2]
// age is an integer variable that stores the user's age
if
(
age >
30
)
{
NSLog
(
@"age is older than thirty."
); //[2.4]
}
else
{
NSLog
(
@"age is younger than thirty."
); //[2.7]
}
NSLog
(
@"Finished."
);
IX-C. Comparaisons▲
À part les signes « plus grand que » et « plus petit que » lors de la déclaration [2.2], les opérateurs de comparaison suivants pour des nombres sont à votre disposition.
== equal to
> greater than
< less than
>= greater than or equal to
<= less than or equal to
!= not equal to
Prenez-en note, la particularité de l'opérateur d'égalité - il a deux signes égal. Il est facile de faire une erreur en utilisation un simple signe égal. Malheureusement, c'est l'opérateur d'attribution qui fixera la variable à une valeur particulière. C'est une cause commune de confusion et d'erreur de code pour des débutants. Dites-le maintenant à haute voix : je n'oublierai pas d'utiliser deux signes égaux en évaluant l'égalité !
Les opérateurs de comparaison sont tout à fait utiles quand vous voulez répéter une série de déclarations plusieurs fois. Ce sera le sujet du chapitre suivant. D'abord, nous discuterons de quelques autres aspects de si les déclarations qui peut entrer pratique.
IX-D. Exercice▲
Jetons un œil sur l'exécution d'une comparaison. Une opération de comparaison aboutit à seulement deux résultats possibles : le résultat est vrai ou faux.
Dans l'Objective-C, vrai et faux sont représentés comme 1 ou 0 respectivement. Il y a même un type de données spécial, nommé BOOL, que vous pouvez utiliser pour représenter de telles valeurs. Pour dénoter "la vraie" valeur, vous pouvez écrire 1 ou OUI. Pour dénoter la valeur "fausse", vous pouvez écrire 0 ou NON.
//[3]
int
x =
3
;
BOOL
y;
y =
(
x ==
4
); // y will be 0.
Il est possible de vérifier pour plus d'une condition. Si vous avez plus qu'une condition qui doit être remplie, vous pouvez utiliser l'opérateur logique ET, représenté par deux esperluettes : &&. Si au moins une des conditions doit être remplie, vous pouvez utiliser un OU logique représenté par deux pipes : ||.
//[4]
if
(
(
age >=
18
) &&
(
age <
65
) )
{
NSLog
(
@"Probably has to work for a living."
);
}
Il est aussi possible d'emboîter des déclarations conditionnelles. Il suffit de placer une déclaration conditionnelle à l'intérieur des accolades d'une autre déclaration conditionnelle. La condition la plus éloignée sera évaluée en premier, et, si elle est rencontrée, alors la condition suivante à l'intérieur le sera à son tour, et cætera :
//[5]
if
(
age >=
18
)
{
if
(
age <
65
)
{
NSLog
(
@"Probably has to work for a living."
);
}
}