web-dev-qa-db-fra.com

Différence entre If et If If?

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.

26
sparklyllama
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
48
Damodaran

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 ifs individuels, cependant, tous les ifs seront exécutés s'ils donnent la valeur true.

9
MultiplyByZer0

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");
}
4
Deepak

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.

3
shreyansh jogi

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.

3
sergeyan

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.

1
bvj

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.

1
midhunhk

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.

1
Foolish