Ruby - pętle - next

0

cześć
Nie rozumiem takowego zadania:

Stwórz pętlę for, która sumuje elementy w zmiennej sum z tablicy numbers. Sumuj tylko i wyłącznie te elementy które nie są podzielne przez 3.

Taki mam kod

sum = 0
for element in numbers # tutaj zrób pętlę po tablicy numbers
	if x!/3# tutaj dodaj warunek i funkcję next
	next
        end
	sum += x
end

Wiem że coś tu jest źle ale nie wiem w jaki sposób zbudować owy warunek :/

2

W Ruby (podobnie jak w wielu innych językach) jest operator modulo/reszty: %. Czyli twój warunek powinien wyglądać tak: element % 3 != 0.

Jednak całe zadanie znacznie lepiej wykonać używając metod z Enumerable:

numbers.select { |element| element % 3 == 0 }.sum

Ogólnie używanie for w Ruby jest złą praktyką.

0

A mógłbyś mi to zrobić w zapisie for? Bo muszę zrobić zadanie za pomocą tego zapisu a innego nie akceptuje.

0
sum = 0
for e in arr
	next if e % 3 == 0
	sum = sum + e
end
0

dziwne, nie działa :/ ogarnij to zadanie i na wzór jego trzeba zrobić .. :/ Ja też próbowałem i lipa :/
Za pomoc bardzo dziękuję.

0

Podaj cały kod, który piszesz, bo to MUSI działać jeśli używasz tego dobrze.

0

tak ma wygl kod

sum = 0
for # tutaj zrób pętlę po tablicy numbers
	# tutaj dodaj warunek i funkcję next
	sum += x
end

treść zadania
Stwórz pętlę for, która sumuje elementy w zmiennej sum z tablicy numbers. Sumuj tylko i wyłącznie te elementy które nie są podzielne przez 3.

0

No to przecież dostałeś dokładny kod od @kq. W czym problem?

0

w tym że platforma nie akceptuje kodu i nie przepuszcza do kolejnego zadania. Sprawdź sobie zadanie..

0

Pewnie ta platforma wymaga użycia konkretnych nazw zmiennych. Gdybyś chociaż spróbował zrozumieć podanego Ci trzylinijkowca to by nie było problemu.

1
next if e % 3 != 0

To mu będzie opuszczać liczby niepodzielne przez 3 a jemu chodziło o to żeby takie sumować

1 użytkowników online, w tym zalogowanych: 0, gości: 1