Menu
Coddy logo textTech

Aralık Metotları

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

Aralıklar, sizi elle döngü yazmaktan kurtaran kullanışlı metotlarla birlikte gelir.

include? bir değerin aralık içinde olup olmadığını kontrol eder:

range = 1..10
puts range.include?(5)   # true
puts range.include?(11)  # false

min, max ve size doğrudan aralıklar üzerinde çalışır:

puts (1..10).min   # 1
puts (1..10).max   # 10
puts (1..10).size  # 10

step, aralık üzerinde belirli bir miktarda atlayarak yinelenir; her değeri istemediğiniz durumlarda kullanışlıdır:

(0..10).step(2) do |n|
  puts n
end
# 0, 2, 4, 6, 8, 10

Ve each tıpkı dizilerde olduğu gibi çalışır:

(1..3).each { |n| puts n * n }
# 1
# 4
# 9
challenge icon

Görev

Kolay

Size kapsayıcı bir aralık ve bir tahmin listesi veriliyor. Tahminleri puanlayın ve aralığı özetleyin.

İki satır okuyun:

  1. Boşlukla ayrılmış iki tam sayı: start ve end_value
  2. Virgülle ayrılmış tam sayı tahminleri listesi

start..end_value aralığını kullanarak şunları yazdırın:

  1. Hit: <n>, burada n aralığa düşen tahmin sayısıdır (include? kullanın)
  2. Span: <n>, burada n aralığın size değeridir
  3. Multiples of 3 sum: <n>, burada n aralıktaki her 3'ün katının toplamıdır (start değerinde veya sonrasındaki ilk 3'ün katından başlayarak step kullanın)

İlk satırdaki 1 10 ve ikinci satırdaki 3,5,11,7,-2 girişi için çıktı şöyledir:

Hit: 3
Span: 10
Multiples of 3 sum: 18

(İsabetler: 3, 5, 7. 1..10 arasındaki 3'ün katları: 3+6+9 = 18.)

Kopya kağıdı

Faydalı Range metotları:

range = 1..10
range.include?(5)  # true
range.min          # 1
range.max          # 10
range.size         # 10

step belirli bir miktarda atlayarak yineler:

(0..10).step(2) { |n| puts n }
# 0, 2, 4, 6, 8, 10

each tıpkı dizilerdeki gibi çalışır:

(1..3).each { |n| puts n * n }

Kendin dene

start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)

# YAPILACAK: include? ile isabet sayısı, size ile aralık, step ile 3'ün katlarının toplamı
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