我定义了一个采用单个参数的方法:
def numbers(int)
end
我想要一个条件语句,根据一系列值来计算参数:
def numbers(int)
if # int != (1,2,3,4,5,6,7,8,9,10) (not legal Ruby)
puts "Cats"
end
end
在这种情况下,如果int
不等于1
,2
,3
,4
,5
,{{1 }},6
,7
,8
或9
,10
。
示例:
puts "Cats"
如何设置这样的范围?我尝试过做def numbers(11) => "Cats"
,但这没有用。
答案 0 :(得分:5)
仅仅因为:
def numbers(i)
puts "Cats" unless (1..10) === i
end
numbers(3)
numbers(11)
#=> Cats
numbers(0)
#=> Cats
答案 1 :(得分:2)
您可以使用Range
s:
def numbers(int)
puts 'Cats' unless (1..10).include? int
end
numbers 11
# Cats
..
和...
运算符用于创建范围文字。前者包括最后一个值,后者排除它。
1..10 # inclusive range; corresponds to the [1,10] interval
1...10 # exclusive range; corresponds to the [1,10) interval
答案 2 :(得分:1)
另一种(更易读)的方法是使用between:
def numbers(int)
puts 'Cats' unless int.between?(1, 10)
end
numbers(3)
numbers(11)
#=> Cats
numbers(0)
#=> Cats
答案 3 :(得分:0)
def numbers(int)
case int
when 1..10
else
puts "Cats"
end
end