Ruby 范围(Range)学习笔记
范围(Range)是 Ruby 中非常有用的一个对象,它表示了一定的数值区间或字符区间。可以通过范围来表示数字、字符、时间等不同的类型。
定义范围
rubyCopy Code# 定义一个数字范围
(1..5) # 包含 1 和 5
# 定义一个字符范围
('a'..'e') # 包含 'a' 和 'e'
# 定义一个时间范围
(Time.now..Time.now + 3600) # 包含当前时刻和一小时后的时刻
范围的操作
范围支持一些常用的操作,比如查询范围内是否包含某个值、迭代范围内的所有元素等。
rubyCopy Code# 查询范围是否包含某个值
(1..5).include?(3) # true
# 迭代范围内的所有元素
(1..5).each do |n|
puts n
end
# 输出:
# 1
# 2
# 3
# 4
# 5
实例
下面是一个使用范围的实例,假设我们要实现一个简单的猜数字游戏,程序生成一个 1~100 的随机数,玩家每次输入一个数字进行猜测,程序会告诉玩家猜测的数字是太大还是太小,直到玩家猜中为止。
rubyCopy Codenumber = rand(1..100) # 生成一个 1~100 的随机数
tries = 0 # 玩家猜测的次数
loop do
print '请猜一个数字(1~100):'
guess = gets.to_i # 获取玩家输入的数字
tries += 1 # 记录猜测次数
if guess == number # 猜对了
puts "恭喜你,猜对了!你一共猜了 #{tries} 次。"
break
elsif guess < number # 猜小了
puts "猜小了,继续努力吧!"
else # 猜大了
puts "猜大了,再试试别的数吧!"
end
end
在程序中使用了范围对象 rand(1..100)
来生成 1~100 的随机数,同时使用了范围的比较操作来判断玩家猜测的数字与正确答案的大小关系。