Je me demandais pourquoi vous utiliseriez un else if
instruction, et non plusieurs instructions if
? Par exemple, quelle est la différence entre cela:
if(i == 0) ...
else if(i == 1) ...
else if(i == 2) ...
Et ça:
if(i == 0) ...
if(i == 1) ...
if(i == 2) ...
Ils semblent faire exactement la même chose.
if(i == 0) ... //if i = 0 this will work and skip following statement
else if(i == 1) ...//if i not equal to 0 and if i = 1 this will work and skip following statement
else if(i == 2) ...// if i not equal to 0 or 1 and if i = 2 the statement will execute
if(i == 0) ...//if i = 0 this will work and check the following conditions also
if(i == 1) ...//regardless of the i == 0 check, this if condition is checked
if(i == 2) ...//regardless of the i == 0 and i == 1 check, this if condition is checked
La différence est que si le premier if
est vrai, tous les autres if
ne seront pas exécutés, même s'ils donnent la valeur true. S'ils étaient des if
s individuels, cependant, tous les if
s seront exécutés s'ils donnent la valeur true.
Si vous avez utilisé plusieurs instructions if
, alors si la condition est true
, tout sera exécuté. Si vous avez utilisé if
et else if
une seule combinaison sera exécutée, la première valeur étant la première
// if condition true then all will be executed
if(condition) {
System.out.println("First if executed");
}
if(condition) {
System.out.println("Second if executed");
}
if(condition) {
System.out.println("Third if executed");
}
// only one will be executed
if(condition) {
System.out.println("First if else executed");
}
else if(condition) {
System.out.println("Second if else executed");
}
else if(condition) {
System.out.println("Third if else executed");
}
Les instructions if
vérifient tous les multiples if
disponibles. tandis que else if
vérifie quand les instructions if
échouent, if
instruction retourne vrai, il ne vérifiera pas else if
.
il dépend donc du scénario comment votre exigence est.
Pour le premier cas: une fois un sinon si (ou le premier si ) réussit, aucun des autres sinon ifs ou - elses sera testé. Cependant, dans le deuxième cas, chaque if sera testé même si tous (ou l'un d'entre eux) réussit.
Vous voyez, si vous voulez vérifier toutes les conditions comme un, deux, trois ... votre deuxième choix est très bien, mais dans de nombreux cas, vous n'avez à vérifier qu'une seule condition, vous évitez ainsi que d'autres conditions ne s'exécutent pas, dans ce cas particulier, vous devez choisir votre premier choix
Le premier exemple ne exécutera pas nécessairement 3 tests où le 2ème exemple ne donnera aucun retour ou gotos.
Dans le premier cas, dès qu'un if
ou else if
la condition devient vraie, tous les "else if" sont ignorés/non vérifiés.
Dans le second cas, même si la valeur de i est 0, toutes les conditions suivantes sont testées.
Vous pouvez donc en déduire que, si vous testez la même variable - qui ne peut pas avoir plusieurs valeurs à un moment donné, la meilleure option est d'utiliser la première approche car elle sera optimale.
Non, ils sont différents. l'exécution vérifiera chaque si. c'est à dire.
if(true)
executes
if(true)
executes // no matter how many ifs you have
tandis que si et sinon si
if(true)
executes
else if(true)
// system doesn't checks for this once if gets true
en bref, un seul de tous les autres si l'échelle sera exécutée.