Was ist der Unterschied zwische else und else if (PHP)?

4 Antworten

Von Experte Lezurex bestätigt

Else wird immer ausgeführt, sofern "If" nicht zutrifft. Else if kann noch eine zusätzliche Bedingung abprüfen vorher.

Beispiel (aus C, aber selbes Prinzip)

/*** Else ***/
if(Zahl == 1)
{
  // Ausgeführt, wenn Zahl = 1
}
else
{
  // alle anderen Fälle
}

/*** Else if ***/

if(Zahl == 1)
{
  // Ausgeführt, wenn Zahl = 1
}
else if(Zahl == 2)
{
  // Ausgeführt, wenn Zahl = 2
}
else
{
  // alle anderen Fälle
}
Woher ich das weiß:Studium / Ausbildung – Masterstudium Elektrotechnik - Schwerpunkt Embedded Systems
SchwarzerJunge 
Fragesteller
 20.10.2021, 10:14

Vielen Dank! Hätte man nicht einfach zwei else if brauchen können anstatt else oder einfach zwei else? Ich verstehe nicht warum zwei von denen exestieren. Sry bin Anfänger. Möglicherweise ist das eine komische Frage.

0
Gehilfling  20.10.2021, 10:17
@SchwarzerJunge

Klar kannst du auch mehrere "Else if" Abfragen einbauen, je nachdem, wie viele Bedingungen du prüfen möchtest.

Allerdings gibt es immer nur einen Else-Zweig. Denn wenn du das einfach wörtlich nimmst, gibt es nur einen "wenn nichts zutrifft, machst du ansonsten das". Und das kann es ja logischerweise nur einmal geben.

Also:

/* Das geht */

if(Zahl == 1)
{  }
else if (Zahl == 2)
{  }
else if (Zahl == 3) 
{  }

/* Das geht nicht */

if(Zahl == 1)
{ }
else
{  }
else  /* <---- das wird nie erreicht */
{  }

Übrigens ist ein "else" keine Pflicht, du kannst if / else if auch ohne einen dedizierten "else"-Pfad nutzen.

Also: Ein "If" geht ohne "else", ein "else" aber nie ohne "if".

1
Dultus, UserMod Light   20.10.2021, 10:18
@SchwarzerJunge

Zwei Else bringen nichts - wie auch. Das Else wird ausgeführt, wenn nichts anderes zutrifft. Innerhalb des Elses kannst du weiter filtern, wenn gewünscht.

Ein else if ist wie ein separates if. Der Vorteil besteht darin, dass wenn eins der ifs zutrifft, dass die anderen nicht mehr ausgeführt werden, als wenn du zig ifs hintereinander nutzt.

0
PlacidCyanide  20.10.2021, 10:19
@SchwarzerJunge

Nein, denn wenn du else sagst, sagst du dem Programm was es tun soll wenn nur die eine if bedingung fehlschlägt bzw. Nicht zutrifft.

Mit elseif kannst du zusätzlich weitere Bedingungen angeben und dann immer noch mit else alles andere behandeln.

Du kannst hierfür aber zb auch 2 if /else verzweigungen nehmen:

If zahl = 1

Blabla

If zahl = 2

Bloblo

Else

Bleble

0

If (Falls Bedingung zutrifft)

else if (Falls die vorherige Bedingung nicht zutrifft, falls diese Bedungung zutrifft)

else (falls keine Bedingung zutrifft)

Heißt, das else löst aus, wenn keine andere Bedingung von den If / if else zutrifft.

Ein if else hat eine Bedingung, ein Else nicht.

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

Wenn du zb eine Variable hast, die 3 oder mehr Werte annehmen kann.

Zb.: die Variable "Gender" {male, female, prefer not to say, non binary, gorilla}

Und dann abfragst:

If gender = male

Backgroundcolor = blue.

Elseif gender = female

Backgroundcolor = pink.

Else

Backgroundcolor = standard.

Du hast quasi die Möglichkeit 2 oder mehr Bedingungen zusätzlich abzufragen.

Bei mehr als 3 verschiedenen Bedingungen, ist dann aber auch schon ein switch/case sinnvoll.

SchwarzerJunge 
Fragesteller
 20.10.2021, 10:25

Danke für das lustige Beispiel hat mir sehr geholfen!

0

Bei ELSE unterscheidest Du nur zwischen zwei Parametern, bei ELSE IF um mehrere.

Woher ich das weiß:Hobby – Programmierer, EDV, ... seit den 80er :)
Dultus, UserMod Light   20.10.2021, 10:18
Bei ELSE unterscheidest Du nur zwischen zwei Parametern

Welche zwei Parameter meinst du?

0