2013-04-17 41 views
5

我想檢查my_number是否在某個範圍內,包括較高的值。Ruby範圍:操作員在case語句中

在if語句我會簡單地用 「X> 100 & & X < = 500」

但我應該在Ruby情況下做(開關)?

使用:

case my_number 
when my_number <= 500 
    puts "correct" 
end 

不起作用。

注:

如果my_number正好是500,我不希望添加標準範圍不包括的情況下第二「的時候」,因爲我會寫雙內容

case my_number 
# between 100 and 500 
when 100..500 
    puts "Correct, do something" 
when 500 
    puts "Correct, do something again" 
end 
+0

你是錯的伎倆。 '100..500'確實匹配'500'。 – sawa

+0

sawa是對的。謝謝你們的幫助! –

回答

6

它應該就像你說的那樣工作。下面case結構包括價值500

case my_number 
# between 100 and 500 
when 100..500 
    puts "Correct, do something" 
end 

所以:

case 500 
    when 100..500 
    puts "Yep" 
end 

將返回Yep

或者您想進行單獨行動,如果該值正是 500?

+0

它確實回答我的問題,你是絕對正確的,仍然是一個noob我想:) –

+0

不用擔心,很高興我可以確認你自己的答案;) –

+4

只是爲了完整性:'1..500'包括500,而'1 ... 500'不包括500. 使用'..'構造的範圍從頭到尾包含在內。那些使用'...'創建的結果值排除 –

1

你可能只是做:

(1..500).include? x 

這也是別名爲member?

3
when -Float::INFINITY..0 

會做:)