Rubyの条件判定


Ruby は、非常に一般的な条件構造をいくつか提供します。ここでは、Ruby で使用できるすべての条件文と修飾子について説明します。

Ruby の if...else

構文

if conditional [then]
	  code...
[elsif conditional [then]
	  code...]...
[else
	  code...]
end

if 式は条件付き実行に使用されます。値 falsenil は 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 $debug
E 以上の出力結果:

debug
EE

RUBY

Unless

スピーキング

unless conditional [then]
   code
[else
   code ]
end
EE

UNLESS と 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

Syntax

code unless conditional

Conditional

が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 の式。

りー