I potrzebuję stworzyć metodę, która będzie pobierała tablice “pełnoletniość” jako pierwszy argument,
oraz drugim argumentem będzie wiek podany przy każdej osobie, następnie metoda będzie zwracała które osoby są pełnoletnie, a które nie.
Zrobiłem coś takiego, ale nie działa poprawnie:
class IloscLat
pełnoletniość = {"Adam" => 16, "Robert" => 24, "Anna" => 14, "Marta" => 22}
def initialize(pełnoletniość, wiek)
@pełnoletniość = pełnoletniość
@wiek = wiek
if @wiek >18
puts pełnoletni
else
puts niepelnoletni
end
end
end
nie używaj polskich znaków w kodzie ( staraj się korzystać z nazw angielskich ).
nie wrzucaj do metody initialize “conditional statements”, ta metoda sluży tylko to inicjalizacji obiektu
skoro masz hasha z imionami i wiekiem ( co można traktować jako stałą, przynajmniej tak sie domyslam ) to mozesz iterować po tej tablicy i tam wstawić warunek sprawdzający wiek.
class IloscLat
def initialize wiek_osob
@wiek_osob = wiek_osob
end
def pelnoletni
@wiek_osob.each do |imie, wiek|
if wiek >= 18
puts "#{imie} jest pełnoletni"
else
puts "#{imie} jest niepełnoletni"
end
end
end
end
wiek_osob = {"Adam" => 16, "Robert" => 24, "Anna" => 14, "Marta" => 22}
iL = IloscLat.new(wiek_osob)
iL.pelnoletni
Dziękuję wszystkim za pomoc, nie wiedziałem że to takie proste, nigdy tez nie korzystałem z hasha i nie znałem iteracji. Dzięki również za rady, postaram się do nich stosować.