Menu
CoddyTech

范围方法

本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 7 课,共 56 课。

范围还提供了一些实用方法,可以省去你手动编写循环。

include? 用于检查某个值是否在范围内:

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

min、max 和 size 可以直接用于范围:

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

step 会按固定的间隔遍历范围,适合不需要每个值的情况:

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

而且,each 的用法和数组中一样:

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

挑战

简单

给定一个包含两端的范围和一个猜测列表。为这些猜测计分,并总结该范围。

读取两行:

  1. 两个用空格分隔的整数:start 和 end_value
  2. 一个用逗号分隔的整数猜测列表

使用范围 start..end_value,打印:

  1. Hit: <n>,其中 n 是落在范围内的猜测数量(使用 include?)
  2. Span: <n>,其中 n 是该范围的 size
  3. Multiples of 3 sum: <n>,其中 n 是范围内所有 3 的倍数之和(使用 step,从大于或等于 start 的第一个 3 的倍数开始)

如果第一行输入 1 10,第二行输入 3,5,11,7,-2,输出为:

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

(命中的数字:3、5、7。1..10 中的 3 的倍数:3+6+9 = 18。)

亲手试试

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

# TODO:用 include? 统计命中次数,用 size 计算范围长度,用 step 计算 3 的倍数之和
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Ruby 在线编译器