Menu
CoddyTech

any und all

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

any() und all() stellen eine Ja-oder-Nein-Frage zu einem ganzen Array. Beide nehmen eine Funktion entgegen, die für ein Element true oder false zurückgibt:

  • any() gibt true zurück, wenn die Funktion für mindestens ein Element true zurückgibt.
  • all() gibt true zurück, wenn die Funktion für jedes Element true zurückgibt.
var enemy_hp = [30, 0, 12]
print(enemy_hp.any(func(hp): return hp == 0))
print(enemy_hp.all(func(hp): return hp > 0))
true
false

Ein Gegner hat 0 HP, daher ist any() true, und derselbe Gegner bewirkt, dass all() false ist.

Beide brechen ab, sobald die Antwort feststeht: any() beim ersten true, all() beim ersten false. Sie funktionieren auch mit benannten Funktionen, wie numbers.all(is_even).

Bei einem leeren Array gibt any() false zurück, weil kein Element die Bedingung erfüllt, und all() gibt true zurück, weil kein Element die Bedingung nicht erfüllt.

Verwende sie in einer Bedingung anstelle einer Schleife mit einer Flag-Variable:

var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
	print("The door opens")
challenge icon

Aufgabe

Einfach

Das Programm liest eine durch Kommas getrennte Zeile mit Punktzahlen ein und speichert sie im Array numbers. Dieser Teil ist bereits geschrieben.

Gib zwei Zeilen aus:

  1. Any perfect: gefolgt von true, wenn mindestens eine Punktzahl 100 beträgt, andernfalls false
  2. All passed: gefolgt von true, wenn jede Punktzahl mindestens 50 beträgt, andernfalls false

Verwende any() für die erste Zeile und all() für die zweite. Für die Eingabe 100,75,40 lautet die Ausgabe:

Any perfect: true
All passed: false

Probier es selbst

extends Node

func _ready():
	var numbers := []
	for part in OS.read_string_from_stdin().split(","):
		numbers.append(int(part))
	# Gib die beiden Zeilen mit any() und all() 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