范围方法
本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 7 课,共 56 课。
范围还提供了一些实用方法,可以省去你手动编写循环。
include? 用于检查某个值是否在范围内:
range = 1..10
puts range.include?(5) # true
puts range.include?(11) # falsemin、max 和 size 可以直接用于范围:
puts (1..10).min # 1
puts (1..10).max # 10
puts (1..10).size # 10step 会按固定的间隔遍历范围,适合不需要每个值的情况:
(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挑战
简单给定一个包含两端的范围和一个猜测列表。为这些猜测计分,并总结该范围。
读取两行:
- 两个用空格分隔的整数:
start和end_value - 一个用逗号分隔的整数猜测列表
使用范围 start..end_value,打印:
Hit: <n>,其中n是落在范围内的猜测数量(使用include?)Span: <n>,其中n是该范围的sizeMultiples 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 的倍数之和
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Ruby 在线编译器