Menu
Coddy logo textTech

count, all?, any?, none?

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 24 / 56.

Sizi bir döngü yazmaya zorlamadan, bir koleksiyon hakkında soruları yanıtlayan dört küçük Enumerable metodu.

count bloğu sağlayan kaç öğe olduğunu döndürür:

[1, 2, 3, 4, 5].count { |n| n.even? }   # 2
[1, 2, 3, 4, 5].count                    # 5  (blok yok, toplam sayı)

all?, her öğe bloğu sağladığında doğrudur:

[2, 4, 6].all? { |n| n.even? }    # doğru
[2, 4, 7].all? { |n| n.even? }    # yanlış

any?, en az bir eleman koşulu sağladığında true döner:

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

none?, öğelerin hiçbiri koşulu sağlamadığında true döner:

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

Metotlar kısa devre yapar; any? ilk eşleşmede durur, all? ilk başarısızlıkta durur. Bunlar düşük maliyetlidir.

challenge icon

Görev

Kolay

Virgülle ayrılmış bir test puanları (tam sayılar) listesini okuyun. Bir sınıf, aşağıdaki durumlarda geçerli bir geçen sınıf sayılır:

  • Puanların none? (hiçbiri) negatif değilse (kaydedilmemiş bir test)
  • Puanların all? (tamamı) en fazla 100 ise
  • Puanlardan any? (en az biri) tam olarak 100 ise (en az bir tam puan)
  • En az 3 puan >= 70 ise (count kullanın)

Tam olarak bir satır yazdırın:

  • Dört koşulun tamamı sağlandığında Valid: <count> passing (burada count, >= 70 olan puanların sayısıdır)
  • Aksi takdirde Invalid

72,80,100,65,90 girişi için: 4 puan >= 70, hiçbiri negatif değil, hepsi <= 100, bir tanesi 100, bu nedenle çıktı Valid: 4 passing olur.

72,80,90 için: 3 kişi geçiyor ancak tam puan yok, bu nedenle Invalid.

Kopya kağıdı

Bir koleksiyon hakkındaki soruları yanıtlayan dört Enumerable metodu:

count – bloğu karşılayan kaç öğe olduğunu döndürür (blok yoksa toplam boyutu döndürür):

[1, 2, 3, 4, 5].count { |n| n.even? }  # 2
[1, 2, 3, 4, 5].count                   # 5

all? – her öğe bloğu karşıladığında true döner:

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

any? – en az bir öğe bloğu karşıladığında true döner:

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

none? – hiçbir öğe bloğu karşılamadığında true döner:

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

Bu metodlar kısa devre (short-circuit) yapar: any? ilk eşleşmede durur, all? ise ilk başarısızlıkta durur.

Kendin dene

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

# TODO: Valid vs Invalid kararı vermek için all?, any?, none?, count metotlarını birleştirin
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler