any와 all
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 63번째.
any()와 all()은 배열 전체에 대해 예 또는 아니요로 답할 수 있는 질문을 합니다. 둘 다 각 요소에 대해 true 또는 false를 반환하는 함수를 인수로 받습니다:
any()는 함수가 하나 이상의 요소에 대해true를 반환하면true를 반환합니다.all()은 함수가 모든 요소에 대해true를 반환하면true를 반환합니다.
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적 하나의 HP가 0이므로 any()는 true이고, 같은 적 때문에 all()은 false입니다.
둘 다 답을 알게 되는 즉시 멈춥니다. any()는 첫 번째 true에서, all()은 첫 번째 false에서 멈춥니다. numbers.all(is_even)처럼 이름이 지정된 함수와도 함께 사용할 수 있습니다.
빈 배열에서는 통과하는 요소가 없으므로 any()는 false를 반환하고, 실패하는 요소가 없으므로 all()은 true를 반환합니다.
플래그 변수를 사용하는 루프 대신 조건문에서 사용하세요:
var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
print("The door opens")챌린지
쉬움프로그램은 쉼표로 구분된 점수 한 줄을 읽고 배열 numbers에 저장합니다. 이 부분은 이미 작성되어 있습니다.
두 줄을 출력하세요:
Any perfect:뒤에 점수가 하나라도100이면true를, 그렇지 않으면false를 출력합니다.All passed:뒤에 모든 점수가50이상이면true를, 그렇지 않으면false를 출력합니다.
첫 번째 줄에는 any()를, 두 번째 줄에는 all()을 사용하세요. 입력이 100,75,40일 때 출력은 다음과 같습니다:
Any perfect: true
All passed: false직접 해보기
extends Node
func _ready():
var numbers := []
for part in OS.read_string_from_stdin().split(","):
numbers.append(int(part))
# any()와 all()을 사용해 두 줄을 출력하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러