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.

Bir koleksiyon hakkında, bir döngü yazmanı gerektirmeden soruları yanıtlayan dört küçük Enumerable yöntemi.

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 true değerini alır:

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

any?, en az biri bunu yaptığında doğrudur:

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

none?, hiçbirinin bunu yapmadığı durumda true olur:

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

Bu yöntemler kısa devre yapar; any? ilk eşleşmede, all? ilk başarısızlıkta durur. Maliyetleri düşüktür.

challenge icon

Görev

Kolay

Virgülle ayrılmış test puanlarından (tam sayılar) oluşan bir liste okuyun. Bir sınıf aşağıdaki durumlarda geçerli bir başarılı sınıftır:

  • Puanların none? kadarı negatif değildir (kaydedilmemiş bir test)
  • all? puanlar en fazla 100 değerindedir
  • any? puan tam olarak 100 değerindedir (en az bir tam puan)
  • en az 3 puan >= 70 değerindedir (count kullanın)

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

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

72,80,100,65,90 girdisi için: 4 puan >= 70, hiçbiri negatif değil, tümü <= 100, biri 100 ve çıktı Valid: 4 passing olur.

72,80,90 için: 3 başarılı puan var ancak tam puan yok, bu nedenle Invalid.

Kendin dene

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

# TODO: Valid vs Invalid kararı için all?, any?, none?, count'u birleştir
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

Kendi başına pratik yap: Online Ruby derleyicisi