Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のコンテンツ ホームへ戻る

ifによる分岐

他のプログラミング言語と同じようにRubyも分岐命令が用意されています。本節では、ifによる分岐について説明します。

if <条件式> then
  <文>
end

<条件式>を評価した結果が真の時に<文>を実行します。
具体的には以下のように使います。

flag = true
if flag == true then
  p "true"  #=> "true"
end

上の例えでは、flag == true という条件式の評価された結果がtrueなので、ifとendに囲まれている処理が実行されます。二つの等号をならべたのは比較演算子です。一つの等号で記述する代入演算子と間違え易いので気を付けてください。

trueという値はRubyにおける代表的な真の値なので処理が実行されました。このようにifを使えましたが、true以外の真の値にはどのようなものがあるのでしょうか。実はRubyにおける真の値は、「false」と「nil」以外のすべてになります。

  • 真(falseとnil以外)
  • 偽(falseとnil)

他のプログラミング言語では「0」を偽の値としていることもありますが、Rubyの「0」は真です。

flag = 0
if flag then
  p "true"  #=> "true"
end

<条件式>がfalseやnilの時は<文>は実行されません。

flag = false
if flag then
  p "false"  # 条件がfalseなので実行しない
end
flag = nil
if flag then
  p "nil"    # 条件がnilなので実行しない
end

このようなifの条件に使ったtrueやfalseのことを擬似変数と呼びます。擬似変数のことはリファレンスに載っていますのでそちらをご参照ください。

さらに細かく条件を指定したい時は、ifの中にelsifやelseを加えることで指定できます。他のプログラミング言語と違い、elsifと書くので注意しましょう。elsifはそれまでの<条件式>の結果が偽であり、そのelsifに指定された<条件式>の結果が真の時に処理を実行します。elseはすべての<条件式>が偽の時に処理を実行します。

val = 23       # 一つの等号で記述するのは代入です。
if val == 50 then # 等号を二つ並べたのは比較演算子です。
  puts("同じ")
elsif val < 20 then
  puts("20より小さい")
elsif val < 30 then
  puts("30より小さい")
else
  puts("それ以外")
end

< は == と同じで比較演算子です。比較演算子は「条件判断」のレッスンに説明します。

elsifは複数書けますし、elsifやelseはなくても構いません。また、ifのthenは省略して書くこともできます。

以下のようにifは入れ子にすることもできます。

val = 42
if val > 10 then
  puts("valは10より大きい")
  if val > 20 then
    puts("valは20より大きい")
  elsif val < 20 then
    puts("valは10より大きく20より小さい")
  end
end


次のコンテンツ ホームへ戻る