Menu
CoddyTech

재학 여부 확인

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

challenge icon

챌린지

쉬움

학생이 과목을 수강하는지 확인합니다. 이전 단계에서 작성한 내용은 모두 그대로 둡니다.

1. 함수. 다른 함수 아래에 is_enrolled(student_name: String, course: String) -> bool을 작성합니다.

  • student_records에 이름이 없으면 Student '<name>' not found.를 출력하고 false를 반환합니다.
  • 그렇지 않으면 과목이 학생의 "courses" 집합에 있을 때 true를 반환하고, 없을 때 false를 반환합니다.

2. 명령어. ["show"] 위에 enrolled <name> <course>에 대한 분기를 추가합니다. 예를 들어 enrolled Alice Math와 같습니다. 이 분기는 is_enrolled()가 반환하는 값을 출력합니다. 다음 명령어를 실행하면

add Alice 20 Math Physics
add Bob 22 Biology Chemistry
enrolled Alice Math
enrolled Alice Biology
enrolled Bob Biology
enrolled Charlie Math
exit

출력은 다음과 같습니다.

Student 'Alice' added successfully.
Student 'Bob' added successfully.
true
false
true
Student 'Charlie' not found.
false
Goodbye!

학생을 찾을 수 없으면 메시지가 먼저 출력되고 그 뒤에 false가 출력됩니다.

직접 해보기

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:
			["add", var student, var age, ..]:
				add_student(student, int(age), parts.slice(3))
			["grade", var student, var grade]:
				add_grade(student, int(grade))
			["show"]:
				print(student_records)
			["exit"]:
				print("Goodbye!")
				break

func add_student(student_name: String, age: int, courses: Array) -> void:
	if student_records.has(student_name):
		print("Student '%s' already exists." % student_name)
		return
	var course_set := {}
	for course in courses:
		course_set[course] = true
	student_records[student_name] = {"age": age, "grades": [], "courses": course_set}
	print("Student '%s' added successfully." % student_name)

func add_grade(student_name: String, grade: int) -> void:
	if not student_records.has(student_name):
		print("Student '%s' not found." % student_name)
		return
	student_records[student_name]["grades"].append(grade)
	print("Grade %d added for student '%s'." % [grade, student_name])

논리와 흐름의 모든 레슨

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