Menu
Coddy logo textTech

Student hinzufügen

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 49 von 56.

Definieren Sie eine add_student-Methode, die einen neuen Studenten im gemeinsamen student_records-Hash registriert.

Das Ablehnen von Duplikaten ist die einzige Verzweigung; sobald ein Student existiert, melden Sie dies und kehren Sie zurück, ohne 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.

Spickzettel

Verwenden Sie eine globale Variable ($variable_name), damit Methoden auf Variablen zugreifen und diese ändern können, die außerhalb ihres Gültigkeitsbereichs definiert sind:

$student_records = {}

def add_student(name, age, courses)
  if $student_records.key?(name)
    puts "Student '#{name}' already exists."
    return
  end
  $student_records[name] = { age: age, grades: [], courses: courses }
  puts "Student '#{name}' added."
end

Wichtige Punkte:

  • Stellen Sie ein $ voran, um eine Variable global zu machen (zugänglich innerhalb von Methoden)
  • Verwenden Sie .key?(name), um zu prüfen, ob ein Hash bereits einen Schlüssel enthält
  • Verwenden Sie return, um eine Methode vorzeitig zu beenden, nachdem ein Duplikat behandelt wurde

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 & Programmfluss