Warum printet er das "Nochmal Test" nicht? (Lua)?

6 Antworten

Wie soll denn der Zähler die 10 erreichen? In der While-Schleife wird der Wert der Variable Zaehler nirgends erhöht!

(Und es sieht mir nicht danach aus, als ob da ein anderer Prozess parallel laufen würde, der die Variable beeinflussen würde.)

Demenstprechend wird immer wieder „Test“ ausgegeben und kurz gewartet, ohne dass sich daran etwas ändert. Du hast da eine Endlosschleife.

Du musst die Zählvariable innerhalb des "while"-Blocks auch irgendwo erhöhen - sonst hast Du einfach nur eine Endlosschleife.

Der Zaehler wird nirgendwo inkrementiert oder der Wert anderweitig verändert und hat somit nie einen Wert größer oder gleich 10 was für die Ausgabe "Nochmal Test" erforderlich ist. Du müsstest Zaehler nach dem If (oder wo anders) inkrementieren damit es geht (Dafür kann man dann auch eine For-Schleife nehmen).

lg Suiram1

Woher ich das weiß:Hobby – Ich programmiere seit 3 Jahren mit C#

Einen schönen guten Tag, liebe*r Christopher0201

gehen wir durch Deinen Code.

Zaehler = 1

solange der Zaehler kleiner oder gleich 10 ist:

schreibe "Test"

Warte 1ms

Wenn der Zähler größer oder gleich 10 ist, dann schreibe "Nochmal Test"

Fertig.

Und wie soll der Zaehler nun 10 erreichen? Er bleibt 1, weil Du ihn nicht erhöhst. Entsprechend hast Du eine Endlosschleife.

Mit freundlichen Grüßen

Dultus

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer

Gehen wir das Ganze doch einfach mal im Kopf durch:

Zaehler ist 1
Der Schleifenkopf prüft ob Zaehler <= 0 ist.
Ja, ist es. Also gibt er "Test" aus.
Dann wartet er eine Sekunde.
Dann prüft er ob Zaehler größer oder gleich 0 ist.
Ist er nicht, somit überspringt er die Aufgabe.

Einfache Antwort also: Er gibt "Nochmal Test" nicht aus, weil Zaehler kleiner 10 ist.

Ich gehe davon aus, dass du gemerkt hast, dass du eine Endlosschleife gebaut hast, weil dein Zaehler nicht erhöht wird.

Woher ich das weiß:Berufserfahrung