Menu
Coddy logo textTech

Aggiungere uno studente

Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 49 di 56.

Definisci un metodo add_student che registra un nuovo studente nell'hash condiviso student_records.

Il rifiuto dei duplicati è l'unico ramo: una volta che uno studente esiste, segnalalo e restituisci il controllo senza sovrascrivere.

challenge icon

Sfida

Facile

All'inizio del file, mantieni student_records = {}. Poi definisci un metodo add_student(name, age, courses) che:

  1. Se name è già una chiave in student_records, stampa Student '<name>' already exists. e termina.
  2. Altrimenti memorizza { age: age, grades: [], courses: courses } sotto name e stampa Student '<name>' added.

Alla fine del file, sostituisci il blocco di test con:

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

L'output previsto è:

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

Poiché i metodi non possono accedere alle variabili locali dello script che li racchiude, dichiara student_records con $student_records (una variabile globale), così il metodo può leggerla e aggiornarla. Usa anche quel nome all'interno del metodo.

Provalo tu

$student_records = {}

# TODO: def add_student(name, age, courses), evita i duplicati,
# memorizza { age:, grades: [], courses: }, stampa aggiunto/già esistente

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

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Ruby online