Menu
CoddyTech

Các phương thức của phạm vi

Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 7 trên 56.

Các khoảng có những phương thức tiện lợi, giúp bạn không phải tự viết vòng lặp.

include? kiểm tra xem một giá trị có nằm trong khoảng hay không:

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

min, max và size hoạt động trực tiếp trên các khoảng:

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

step lặp qua phạm vi, mỗi lần nhảy một khoảng cố định. Cách này hữu ích khi bạn không muốn lấy mọi giá trị:

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

Và each hoạt động giống như với mảng:

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

Thử thách

Dễ

Bạn được cho một phạm vi bao gồm cả hai đầu mút và một danh sách các số đoán. Hãy tính điểm cho các số đoán và tóm tắt phạm vi.

Đọc hai dòng:

  1. Hai số nguyên cách nhau bằng dấu cách: start và end_value
  2. Một danh sách các số nguyên được phân tách bằng dấu phẩy

Dùng phạm vi start..end_value, in ra:

  1. Hit: <n>, trong đó n là số lượng số đoán nằm trong phạm vi (dùng include?)
  2. Span: <n>, trong đó n là size của phạm vi
  3. Multiples of 3 sum: <n>, trong đó n là tổng của mọi bội số của 3 trong phạm vi (dùng step, bắt đầu từ bội số đầu tiên của 3 lớn hơn hoặc bằng start)

Với đầu vào 1 10 ở dòng đầu tiên và 3,5,11,7,-2 ở dòng thứ hai, đầu ra là:

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

(Các số đoán trúng: 3, 5, 7. Các bội số của 3 trong 1..10: 3+6+9 = 18.)

Tự làm thử

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

# TODO: Đếm số lần đoán trúng bằng include?, tính độ dài khoảng bằng size, tính tổng các bội số của 3 bằng step
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng xử lý

Tự luyện tập: Trình biên dịch Ruby online