성적 추가
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 44번째.
챌린지
쉬움학생들의 성적을 기록하세요. 이전 단계에서 작성한 내용은 모두 유지하세요.
1. 함수. 다른 함수 아래에 add_grade(student_name: String, grade: int) -> void를 작성하세요:
student_records에 이름이 없으면Student '<name>' not found.를 출력하고 반환하세요.- 그렇지 않으면 성적을 학생의
"grades"배열에 추가하고Grade <grade> added for student '<name>'.를 출력하세요.
성적은 집합이 아니라 배열입니다. 학생이 같은 성적을 두 번 받을 수 있으며 두 번 모두 기록되어야 하기 때문입니다.
2. 명령. ["show"] 위에 grade <name> <grade> 분기를 추가하세요. 예를 들면 grade Alice 90입니다. 이 분기에서는 성적을 int로 변환하여 add_grade()를 호출합니다. 다음 명령을 실행하면
add Alice 20 Math Physics
add Bob 22 Biology Chemistry
grade Alice 90
grade Alice 85
grade Bob 75
grade Charlie 80
show
exit출력은 다음과 같습니다:
Student 'Alice' added successfully.
Student 'Bob' added successfully.
Grade 90 added for student 'Alice'.
Grade 85 added for student 'Alice'.
Grade 75 added for student 'Bob'.
Student 'Charlie' not found.
{ "Alice": { "age": 20, "grades": [90, 85], "courses": { "Math": true, "Physics": true } }, "Bob": { "age": 22, "grades": [75], "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:
["add", var student, var age, ..]:
add_student(student, int(age), parts.slice(3))
["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)
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러