2016-08-21 2 views
-2

なぜ次のように出力されますか?Rubyで数値比較を行う方法は?

some_value = 100 

case some_value 
when some_value <= 200 
    puts "less than 200" 
else 
    puts "not less than 200" 
end 
+0

この場合、「if ... else」ブロックが読みにくくなることはありませんか? – spickermann

答えて

3

case...when...endコンストラクトは、一致をチェックするために===を使用しています。あなたが構築物はif...else...のように動作させるためにcase後の値を省略することができます

case 100 
when some_value <= 200 # when (some_value <= 200) === 100, which is (true === 100), which doesn't match 
    puts "less than 200" 
else 
    puts "not less than 200" 
end 

あなたのコードは、として評価されます。

some_value = 100 

case 
when some_value <= 200 
    puts "less than 200" 
else 
    puts "not less than 200" 
end 
+0

どのように "<="を評価しますか? – 4thSpace

+0

単に 'case some_value'を' case'に置き換えてください。 –

+0

@NilsLandtはい、ちょうどそれが追加されました。 –

関連する問題