Menu
CoddyTech

학생 추가

Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 43번째.

challenge icon

챌린지

쉬움

학생들을 기록에 추가하세요. 이전 단계에서 작성한 내용을 모두 유지하세요.

1. 함수. _ready() 아래에 add_student(student_name: String, age: int, courses: Array) -> void를 작성하세요:

  • student_records에 해당 이름이 이미 있으면 Student '<name>' already exists.를 출력하고 반환하세요.
  • 그렇지 않으면 과목 집합(각 과목을 키로 하고 true를 값으로 갖는 딕셔너리)을 만든 다음, 학생의 이름을 키로 하여 세 개의 키를 가진 딕셔너리로 학생 정보를 저장하세요: "age"(나이), "grades"(빈 배열), "courses"(집합). 그런 다음 Student '<name>' added successfully.를 출력하세요.

2. 명령. add Alice 20 Math Physics 명령에는 이름, 나이, 그리고 개수에 제한 없이 과목이 포함됩니다. match에 ["show"] 위쪽에 다음 분기를 추가하세요:

["add", var student, var age, ..]:
	add_student(student, int(age), parts.slice(3))

..를 사용하면 패턴이 뒤에 오는 과목들과 일치하고, parts.slice(3)은 해당 과목들의 배열입니다. 다음 명령을 실행하면

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
show
exit

출력은 다음과 같습니다:

Student 'Alice' added successfully.
Student 'Bob' added successfully.
{ "Alice": { "age": 20, "grades": [], "courses": { "Math": true, "Physics": true } }, "Bob": { "age": 22, "grades": [], "courses": { "Biology": true, "Chemistry": true } } }
Goodbye!

직접 해보기

extends Node

# 각 학생: name -> {"age": int, "grades": Array, "courses": 수강 과목 이름의 집합}
var student_records := {}

func _ready():
	while true:
		var parts := Array(OS.read_string_from_stdin().split(" ", false))
		match parts:
			["show"]:
				print(student_records)
			["exit"]:
				print("Goodbye!")
				break

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러