Tambahkan Nilai
Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 50 dari 56.
Sekarang, perluas sistem dengan menambahkan method add_grade. Method ini menambahkan nilai numerik ke array :grades milik siswa, selama siswa tersebut ada.
Jika nama tersebut tidak ada dalam catatan, laporkan hal itu dan hentikan proses.
Tantangan
MudahPertahankan hash $student_records dan add_student dari pelajaran sebelumnya. Tambahkan method add_grade(name, grade) yang:
- Mencetak
Student '<name>' not found.jika nama tersebut tidak ada, lalu mengembalikan nilai. - Jika tidak, menambahkan
gradeke dalam array:gradesmilik siswa, lalu mencetakGrade <grade> added for '<name>'.
Ganti blok pengujian di bagian bawah dengan:
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Charlie", 80)
puts $student_records.inspectOutput yang diharapkan:
Student 'Alice' added.
Student 'Bob' added.
Grade 90 added for 'Alice'.
Grade 85 added for 'Alice'.
Grade 75 added for 'Bob'.
Student 'Charlie' not found.
{"Alice"=>{:age=>20, :grades=>[90, 85], :courses=>["Math", "Physics"]}, "Bob"=>{:age=>22, :grades=>[75], :courses=>["Biology", "Chemistry"]}}Coba sendiri
$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
# TODO: def add_grade(name, grade)
add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Charlie", 80)
puts $student_records.inspect
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Ringkasan Method StringInterpolasi StringMenelusuri StringMemisahkan dan MenggabungkanRekap: Perangkai String4Block, Proc, dan Lambda
Apa Itu Block?do..end vs Kurung KurawalKata Kunci yieldParameter BlockProc dan LambdaRangkuman, Iterator Kustom7Hash Bagian 2
Hash.new dengan Nilai BawaanMenelusuri HashHash BersarangMenggabungkan dan MengubahRangkuman: Penghitung Frekuensi10Proyek: Data Siswa
Gambaran Umum ProyekTambahkan Siswa5Andalan Enumerable
Select dan RejectMerangkai MapReduce / Injectcount, all?, any?, none?group_by dan partitionsort_by, min_by, max_byRekap: Alur Data8Pengambilan Keputusan Lanjutan
Case dengan class & regexwhen dengan Banyak NilaiOperator Ternaryif / unless SebarisUlasan, Pengklasifikasi NilaiLatihan sendiri: Compiler Ruby online