Menu
CoddyTech

Schüler hinzufügen

Teil des Abschnitts Logik und Ablauf der Ruby-Journey von Coddy. Lektion 49 von 56.

Definiere eine add_student-Methode, die einen neuen Schüler im gemeinsamen student_records-Hash registriert.

Das Ablehnen von Duplikaten ist der einzige Zweig: Sobald ein Schüler existiert, melde dies und kehre zurück, ohne ihn zu überschreiben.

challenge icon

Aufgabe

Einfach

Behalten Sie am Anfang Ihrer Datei student_records = {} bei. Definieren Sie dann eine Methode add_student(name, age, courses), die:

  1. Falls name bereits ein Schlüssel in student_records ist, Student '<name>' already exists. ausgibt und zurückkehrt.
  2. Andernfalls { age: age, grades: [], courses: courses } unter name speichert und Student '<name>' added. ausgibt.

Ersetzen Sie am Ende Ihrer Datei den Testblock durch:

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

Die erwartete Ausgabe ist:

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

Da Methoden keine lokalen Variablen aus dem umschließenden Skript sehen können, deklarieren Sie student_records mit $student_records (einer globalen Variable), damit die Methode sie lesen und aktualisieren kann. Verwenden Sie diesen Namen auch innerhalb der Methode.

Probier es selbst

$student_records = {}

# TODO: def add_student(name, age, courses), Schutz gegen Duplikate,
# speichere { age:, grades: [], courses: }, gebe "added/already exists" aus

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

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik und Ablauf

Übe selbstständig: Online-Ruby-Compiler