English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Rubyの条件判定

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

この行は出力します if...else Ruby

if 条件 [then]
      code...
[elsif 条件 [then]
      code...]...
code ]...
      code...]
end

x が 条件実行のための式 false および nil 偽で、他の値はすべて真です。ご注意ください、Rubyはelsifを使用し、else ifやelifを使用しません。

code unless conditional もし if修飾語グループは、ifの右側の条件が成立した場合にのみifの左側の式を実行することを示します。つまりもし が偽の場合、実行unless式とif式は逆の効果を持っており、つまりもし もし が真でない場合、else節で指定された が偽の場合、実行code

が真でない場合、else節で指定された

通常はキーワードの then を省略します。完全な if 式を一行で書き出したい場合は、条件式とプログラムブロックを then で区切る必要があります。以下のようになります: 4 then a = 7 end

オンラインサンプル

!#/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
が真の場合、else節で指定された1
if a == 2
   puts "x が小さい 2puts "x が大きい
if x > 2 elsif x <=
   and x!=0 1puts "x が大きい
else
   puts "x が
end

この行は出力します\n" unless $var

puts "値がわからない x " 1

この行は出力します x が unless

if

code if condition もし if修飾語グループは、ifの右側の条件が成立した場合にのみifの左側の式を実行することを示します。つまりもし が偽の場合、実行code

オンラインサンプル

!#/usr/bin/ruby
 
が真の場合、実行1
$debug=

この行は出力します\n" unless $var

print "debug\n" if $debug

この行は出力します x が小さい Ruby

デバッグ
   が偽の場合、実行
code ]...
   [else
end

unless conditional [then] もし 条件文 が偽の場合、実行unless式とif式は逆の効果を持っており、つまりもし もし 。もし が偽の場合、実行code

オンラインサンプル

!#/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
が真の場合、else節で指定された1
x=2
   unless x> 2puts "x が大きい
 else
  puts "x が小さい 2puts "x が大きい
end

以上の例の出力結果は以下の通りです:

" 2

この行は出力します x が小さい unless

修飾子

code unless conditional もし 条件文 が偽の場合、実行code

オンラインサンプル

!#/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
。  1
$var = false1 -- $var =
$var = false2 -- この行は出力します\n" if $var
 
この行は出力しません\n" unless $var
$var = false3 -- print "

この行は出力します\n" unless $var

1 -- 上記の例の出力結果:
3 -- 上記の例の出力結果:

この行は出力します case Ruby

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

code ] expression caseはまず

それは一致判定を行い、その結果に基づいてブランチ選択を行います。 ===演算子比較 when 指定された expression、一致すれば実行 when 一部の内容。

通常はキーワードの then を省略します。完全な when 式を一行で書き出したい場合は、条件式とプログラムブロックを 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

以上の例の出力結果は以下の通りです:

子供

caseの"表达式"部分が省略された場合、最初のwhen条件部分が真の表达式が計算されます。

foo = false
bar = true
quu = false
 
case
when foo then puts 'foo is true'
when bar then puts 'bar is true'
when quu then puts 'quu is true'
end
# 表示 "bar is true"