Menu
CoddyTech

While-Schleife

Teil des Abschnitts Grundlagen der GDScript-Journey von Coddy. Lektion 44 von 92.

Eine for-Schleife wird einmal für jede Zahl in einem Bereich ausgeführt. Eine while-Schleife läuft so lange weiter, wie eine Bedingung true ist:

var count := 3
while count > 0:
	print(count)
	count -= 1
print("Go!")
3
2
1
Go!

Die Bedingung wird vor jeder Iteration überprüft. Wenn count zu 0 wird, ist count > 0 false, also wird die Schleife beendet und das Programm danach fortgesetzt. Wenn die Bedingung von Anfang an false ist, wird der Block nie ausgeführt.

Der Block muss etwas ändern, von dem die Bedingung abhängt. Hier bringt count -= 1 count näher an 0. Ohne diese Änderung bliebe die Bedingung true, und die Schleife würde nie enden.

Verwende while, wenn du nicht im Voraus weißt, wie viele Durchläufe du benötigst. Zum Beispiel findet dieser Code die kleinste Zweierpotenz, die größer als 27 ist:

var number := 27
var power_of_two := 1
while power_of_two <= number:
	power_of_two *= 2
print(power_of_two)

power_of_two verdoppelt sich bei jeder Iteration: 2, 4, 8, 16, 32. Bei 32 ist power_of_two <= number false, daher gibt das Programm 32 aus.

challenge icon

Aufgabe

Einfach

Das Programm liest eine Dezimalzahl in number ein.

Verwende eine while-Schleife, um number durch 2 zu teilen, solange die Zahl größer oder gleich 3.5 ist. Gib dann das Ergebnis aus, also den ersten Wert, der kleiner als 3.5 ist.

Zum Beispiel ergeben sich für die Eingabe 15 die Werte 15, 7.5, 3.75 und 1.875, also gibt das Programm Folgendes aus:

1.875

Wenn die Eingabe bereits kleiner als 3.5 ist, gib sie unverändert aus. Verwende keine for-Schleife.

Probier es selbst

extends Node

func _ready():
	var number := float(OS.read_string_from_stdin())
	# Halbiere number, solange es 3.5 oder größer ist, und gib es dann aus
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-GDScript-Compiler