Ruby-if ... else、case、ただし

Rubyは、現代語にかなり一般的な条件付き構造を提供します。ここでは、Rubyで使用できるすべての条件ステートメントと修飾子について説明します。

Ruby if ... elseステートメント

構文

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

式が条件付き実行に使用される場合。値falsenilはfalseであり、他のすべてはtrueです。Rubyはelsifを使用し、elseifもelifも使用しないことに注意してください。

条件が真の場合にコードを実行します。場合は、条件が真ではありません、コードelse節で指定が実行されます。

if式の条件は、予約語then、改行、またはセミコロンによってコードから分離されています。

#!/usr/bin/ruby

x = 1
if x > 2
   puts "x is greater than 2"
elsif x <= 2 and x!=0
   puts "x is 1"
else
   puts "I can't guess the number"
end
x is 1

Rubyif修飾子

構文

code if condition

条件が真の場合にコードを実行します。

#!/usr/bin/ruby

$debug = 1
print "debug\n" if $debug

これにより、次の結果が生成されます-

debug

ステートメントでない限りRuby

構文

unless conditional [then]
   code
[else
   code ]
end

条件がfalseの場合、コードを実行します条件が真の場合、else句で指定されたコードが実行されます。

#!/usr/bin/ruby

x = 1 
unless x>=2
   puts "x is less than 2"
 else
   puts "x is greater than 2"
end

これにより、次の結果が生成されます-

x is less than 2

修飾子でない限りRuby

構文

code unless conditional

条件がfalseの場合、コードを実行します

#!/usr/bin/ruby

$var =  1
print "1 -- Value is set\n" if $var
print "2 -- Value is set\n" unless $var

$var = false
print "3 -- Value is set\n" unless $var

これにより、次の結果が生成されます-

1 -- Value is set
3 -- Value is set

Rubyのcaseステートメント

構文

case expression
[when expression [, expression ...] [then]
   code ]...
[else
   code ]
end

caseで指定されたとwhenで指定された式を===演算子を使用して比較し、一致するwhen句のコードを実行します

表現するとき句で指定されたが、左のオペランドとして評価されます。when句が一致しない場合、caseelse句のコードを実行します。

A文の表現が予約語、その後、改行、またはセミコロンでコードから分離されています。したがって、−

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

$age =  5
case $age
when 0 .. 2
   puts "baby"
when 3 .. 6
   puts "little child"
when 7 .. 12
   puts "child"
when 13 .. 18
   puts "youth"
else
   puts "adult"
end

これにより、次の結果が生成されます-

little child