Menu
CoddyTech

Добавление студента

Часть раздела Логика и потоки выполнения путешествия по Ruby на Coddy. Урок 49 из 56.

Определите метод add_student, который регистрирует нового студента в общей хеш-таблице student_records.

Единственная ветвь — отказ от дубликатов: если студент уже существует, сообщите об этом и выполните return, не перезаписывая запись.

challenge icon

Задание

Легко

В верхней части файла оставь student_records = {}. Затем определи метод add_student(name, age, courses), который:

  1. Если name уже является ключом в student_records, выводит Student '<name>' already exists. и завершает работу.
  2. В противном случае сохраняет { 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: def 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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и потоки выполнения

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby