Menu
CoddyTech

Match-Guards

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 7 von 78.

Eine Schutzbedingung fügt einem Muster eine Bedingung hinzu. Schreibe when und eine Bedingung nach dem Muster: Das Muster stimmt nur dann überein, wenn der Wert zum Muster passt und die Bedingung true ist. Schutzbedingungen gibt es seit Godot 4.4.

var hp := 15
match hp:
	0:
		print("Defeated")
	var h when h < 20:
		print("Low health: ", h)
	_:
		print("Healthy")
Low health: 15

GDScript kennt keine Bereichsmuster wie 1..10. Ein Bindungsmuster mit einer Schutzbedingung erfüllt diesen Zweck: var h when h < 20: passt auf jeden Wert unter 20 und weist ihm den Namen h zu.

Wenn eine Wächterbedingung false ist, fährt match mit dem nächsten Muster fort. Die Muster werden von oben nach unten geprüft, daher entscheidet die Reihenfolge, welcher Block ausgeführt wird:

var temp := 32
match temp:
	var t when t <= 0:
		print("Freezing")
	var t when t < 15:
		print("Cold")
	var t when t < 30:
		print("Warm")
	_:
		print("Hot")
Hot

Das zweite Muster benötigt t > 0 nicht: Eine Temperatur von 0 oder darunter hat bereits auf das erste Muster gepasst. Eine Schutzbedingung kann jede beliebige Bedingung verwenden, mit anderen Variablen und and oder or, und sie passt zu jedem Muster: 5 when hard_mode: passt nur dann auf 5, wenn hard_mode true ist.

challenge icon

Aufgabe

Einfach

Das Programm liest ein Alter als Ganzzahl in age ein. Verwende eine match-Anweisung mit Wächterbedingungen, um die Altersgruppe auszugeben:

  • 0 bis 12: Child
  • 13 bis 19: Teenager
  • 20 bis 64: Adult
  • 65 bis 120: Senior
  • Jede andere Zahl: Invalid age

Jeder Bereich schließt beide Endpunkte ein. Für die Eingabe 15 lautet die Ausgabe:

Teenager

Probier es selbst

extends Node

func _ready():
	var age := int(OS.read_string_from_stdin())
	# Gib die Altersgruppe mit match und Guards 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 Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler