Rubyの条件判定
Ruby は、非常に一般的な条件構造をいくつか提供します。ここでは、Ruby で使用できるすべての条件文と修飾子について説明します。
Ruby の if...else 文
構文
if conditional [then] code... [elsif conditional [then] code...]... [else code...] end
if 式は条件付き実行に使用されます。値 false と nil は false で、その他の値はすべて true です。 Ruby はelsif を使用し、else if と elif は使用しないことに注意してください。
条件がtrueの場合、コードを実行します。 conditionalがtrueでない場合、else句で指定されたcodeを実行します。
通常は予約語を省略します。完全な if 式を 1 行で記述したい場合は、条件式とプログラム ブロックを then で区切る必要があります。以下に示すように:
if a == 4 then a = 7 end
Example
#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 if x > 2 puts "x 大于 2" elsif x <= 2 and x!=0 puts "x 是 1" else puts "无法得知 x 的值" end
上記の例の出力結果:
x 是 1
Ruby if Modifier
Grammar
code if condition
if 修飾子句は、if の左側のみが実行されることを意味しますif の右側の条件が true の場合。つまり、conditional が true の場合、code を実行します。例
#!/usr/bin/ruby $debug=1 print "debug\n" if $debugE 以上の出力結果:
debug
EE
RUBY Unless
unless conditional [then] code [else code ] endEEUNLESS と IF の型が逆、つまり
Conditional が false の場合、Code
を実行します。conditional
がtrueの場合、else句で指定されたcodeを実行します。 Example
#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 unless x>2 puts "x 小于 2" else puts "x 大于 2" end上記の例の出力結果は次のとおりです:
x 小于 2
Ruby
unless Modifier
code unless conditionalConditional
がfalseの場合、codeを実行します。
Example
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $var = 1 print "1 -- 这一行输出\n" if $var print "2 -- 这一行不输出\n" unless $var $var = false print "3 -- 这一行输出\n" unless $var
上記例の出力結果:
1 -- 这一行输出 3 -- 这一行输出Ruby
case
文
Grammar
case expression [when expression [, expression ...] [then] code ]... [else code ] end
caseは、まず
expressionに対して一致判定を行い、次に、expressionに基づいて分岐選択を行います。マッチング結果。
===演算子を使用して、whenで指定された
式を比較し、それらが一致する場合、when部分のコンテンツを実行します。 通常は予約語を省略します。完全な when 式を 1 行で記述したい場合は、条件式とプログラム ブロックを then で区切る必要があります。次のようになります: when a == 4 then a = 7 end
つまり: case expr0
when expr1, expr2
stmt1
when expr3, expr4
stmt2
else
stmt3
end
基本的には次のようなものです:
_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 else stmt3 end
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $age = 5 case $age when 0 .. 2 puts "婴儿" when 3 .. 6 puts "小孩" when 7 .. 12 puts "child" when 13 .. 18 puts "少年" else puts "其他年龄段的" end上記の出力例は次のとおりです:
小孩
ケースの「式」部分が省略されると、次のようになります。評価される最初の when 条件部分が true の式。 りー