Menu
Coddy logo textTech

Dodawanie ucznia

Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 49 z 56.

Zdefiniuj metodę add_student, która rejestruje nowego ucznia we współdzielonym haszu student_records.

Odmowa dodania duplikatów to jedyna gałąź warunkowa: gdy uczeń już istnieje, zgłoś to i zakończ działanie bez nadpisywania danych.

challenge icon

Wyzwanie

Łatwy

Na początku pliku pozostaw student_records = {}. Następnie zdefiniuj metodę add_student(name, age, courses), która:

  1. Jeśli name jest już kluczem w student_records, wypisuje Student '<name>' already exists. i kończy działanie.
  2. W przeciwnym razie zapisuje { age: age, grades: [], courses: courses } pod kluczem name i wypisuje Student '<name>' added.

Na końcu pliku zastąp blok testowy następującym kodem:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts student_records.inspect

Oczekiwany wynik:

Student 'Alice' added.
Student 'Bob' added.
Student 'Alice' already exists.
{"Alice"=>{:age=>20, :grades=>[], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[], :courses=>["Biology", "Chemistry"]}}

Ponieważ metody nie widzą zmiennych lokalnych z otaczającego skryptu, zadeklaruj student_records jako $student_records (zmienną globalną), aby metoda mogła odczytywać tę zmienną i ją aktualizować. Używaj tej nazwy również wewnątrz metody.

Spróbuj swoich sił

$student_records = {}

# TODO: def add_student(name, age, courses), zapobiegaj duplikatom,
# zapisz { age:, grades: [], courses: }, wypisz informację o dodaniu lub o tym, że student już istnieje

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_student("Alice", 21, ["Art"])
puts $student_records.inspect
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Ruby online