Mehr Möglichkeiten: elseif
Mit if und else wählt ein Programm zwischen zwei Möglichkeiten. Oft gibt es mehr. Für mehr Möglichkeiten fügst du elseif-Zweige hinzu, jeden mit einer eigenen Bedingung und einem eigenen then:
local wetter = "bewölkt"
if wetter == "sonnig" then
print("Das Feld zweimal gießen")
elseif wetter == "bewölkt" then
print("Das Feld einmal gießen")
else
print("Heute nicht gießen")
endDas gibt Folgendes aus:
Das Feld einmal gießenDas Programm prüft die Bedingungen von oben nach unten und führt den Block der ersten wahren aus. Die übrigen Zweige überspringt es, auch wenn eine spätere Bedingung ebenfalls wahr ist. Nur wenn keine Bedingung wahr ist, läuft der else-Block. Du kannst so viele elseif-Zweige hinzufügen, wie du brauchst, immer zwischen dem if und dem else. Das else ist optional: Ohne es läuft nichts, wenn keine Bedingung wahr ist. Und egal, wie viele Zweige es gibt, ein einziges end schließt sie alle.
Weil die erste wahre Bedingung gewinnt, kommt es auf die Reihenfolge an:
local eier = 40
if eier >= 12 then
print("Eine Schachtel Eier für den Markt")
elseif eier >= 36 then
print("Drei Schachteln Eier für den Markt")
endDas gibt Folgendes aus:
Eine Schachtel Eier für den Markt40 Eier reichen für drei Schachteln, aber die erste Bedingung ist schon wahr, das Programm kommt also nie zur zweiten. Setze die strengere Bedingung zuerst: eier >= 36, dann eier >= 12.
elseif ist ein Wort. In zwei Wörtern geschrieben, bedeutet else if etwas anderes: einen else-Zweig mit einer neuen, eigenen if-Anweisung darin, und die braucht ein eigenes end:
local wetter = "regnerisch"
if wetter == "sonnig" then
print("Das Feld zweimal gießen")
else if wetter == "bewölkt" then
print("Das Feld einmal gießen")
else
print("Heute nicht gießen")
endmain.lua:8: 'end' expected (to close 'if' at line 2) near <eof>Das end in Zeile 8 schließt das innere if aus Zeile 4, und das äußere if aus Zeile 2 bleibt ohne eines. Schreibe elseif als ein Wort, dann reicht ein end.
So schreibst du es:
Anweisungen
- 1
Führe das Programm aus: Es endet mit einem Fehler. Behebe ihn, indem du
elseifals ein Wort schreibst. Das Programm gibt dannGewächshaus: 15 °CundDie Fenster schließenaus. - 2
Füge einen weiteren
elseif-Zweig mit der Bedingungtemperatur > 20hinzu, derEin Fenster öffnenausgibt, und änderetemperaturin24. Das Programm sollte Folgendes ausgeben:Gewächshaus: 24 °C Ein Fenster öffnenWenn es
Die Fenster schließenausgibt, steht die Bedingungtemperatur > 10zuerst und fängt auch 24 °C ab: Schiebe den neuen Zweig darüber.