添加学生
本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 49 课,共 56 课。
定义一个 add_student 方法,将新学生登记到共享的 student_records 哈希中。
唯一的分支是拒绝重复项。学生一旦存在,就报告这一情况并直接返回,不要覆盖原有记录。
挑战
简单在文件顶部,保留 student_records = {}。然后定义一个方法 add_student(name, age, courses),该方法:
- 如果
name已经是student_records中的一个键,则打印Student '<name>' already exists.并返回。 - 否则,将
{ age: age, grades: [], courses: courses }存储在name下,并打印Student '<name>' added.
在文件底部,将测试代码块替换为:
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts student_records.inspect预期输出为:
Student 'Alice' added.
Student 'Bob' added.
Student 'Alice' already exists.
{"Alice"=>{:age=>20, :grades=>[], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[], :courses=>["Biology", "Chemistry"]}}由于方法无法访问外层脚本中的局部变量,因此使用 $student_records(一个全局变量)声明 student_records,这样方法就能读取并更新它。在方法内部也使用这个名称。
亲手试试
$student_records = {}
# TODO:定义 add_student(name, age, courses),避免重复添加,
# 存储 { age:, grades: [], courses: },输出已添加或已存在
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts $student_records.inspect
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Ruby 在线编译器