Menu
Coddy logo textTech

count, all?, any?, none?

Część sekcji Logika i przepływ programu ścieżki Ruby w Coddy. Lekcja 24 z 56.

Cztery małe metody Enumerable, które odpowiadają na pytania dotyczące kolekcji, bez zmuszania Cię do pisania pętli.

count zwraca liczbę elementów spełniających warunek bloku:

[1, 2, 3, 4, 5].count { |n| n.even? }   # 2
[1, 2, 3, 4, 5].count                    # 5  (bez bloku, łączna liczba elementów)

all? zwraca true, gdy każdy element spełnia warunek bloku:

[2, 4, 6].all? { |n| n.even? }    # true
[2, 4, 7].all? { |n| n.even? }    # false

any? zwraca wartość true, gdy co najmniej jeden element spełnia warunek:

[1, 2, 3].any? { |n| n.even? }    # true
[1, 3, 5].any? { |n| n.even? }    # false

none? ma wartość true, gdy żaden z nich nie spełnia warunku:

[1, 3, 5].none? { |n| n.even? }   # true

Te metody kończą działanie wcześniej: any? zatrzymuje się przy pierwszym dopasowaniu, a all? przy pierwszym niepowodzeniu. Są wydajne.

challenge icon

Wyzwanie

Łatwy

Wczytaj listę wyników testów (liczb całkowitych) oddzielonych przecinkami. Klasa jest zaliczającą klasą spełniającą warunki, gdy:

  • none? żaden wynik nie jest ujemny (nieodnotowany test)
  • all? wyniki są co najwyżej równe 100
  • any? wynik jest równy dokładnie 100 (co najmniej jeden wynik maksymalny)
  • co najmniej 3 wyniki są >= 70 (użyj count)

Wypisz dokładnie jeden wiersz:

  • Valid: <count> passing, gdy spełnione są wszystkie cztery warunki (count to liczba wyników >= 70)
  • Invalid w przeciwnym razie

Dla danych wejściowych 72,80,100,65,90: 4 wyniki >= 70, żaden nie jest ujemny, wszystkie są <= 100, jeden wynosi 100, więc wynikiem jest Valid: 4 passing.

Dla 72,80,90: 3 wyniki zaliczające, ale brak wyniku maksymalnego, więc Invalid.

Spróbuj swoich sił

scores = gets.chomp.split(",").map(&:to_i)

# TODO: połącz all?, any?, none? i count, aby zdecydować między Valid a Invalid
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Ruby online