4-3-2 elsifやcaseを使って複数の条件で実行する処理を分けよう

elsifが記述されたプログラムを保存する

テキストエディタで以下のようなプログラムを記述しelsif.rbとして保存する。

# elsifやcaseを使って複数の条件で実行する処理を分けよう
a = 1

if a == 1
  puts 'aに1が代入されていたら実行される'
elsif a == 2
  puts 'aに2が代入されていたら実行される'
else
  puts 'aに1も2も代入されていなかったら実行される'
end

elsifが記述されたプログラムを実行する

コマンドライン上で、elsifが記述されたプログラムelsif.rbをファイル指定して実行します。
「aに1が代入されていたら実行される」という文字列が表示され、ifの直後のプログラム行だけが実行されていることが分かります。

$ ruby -Ku elsif.rb # Windowsの場合-Kuオプション指定
aに1が代入されていたら実行される

変数aに代入する値を変更する

elsifの条件に合致した場合に実行されるプログラムを確認するために、変数aの値を2に書き換えてプログラムを保存します。

# elsifやcaseを使って複数の条件で実行する処理を分けよう
a = 2 # ←書き換える

if a == 1
  puts 'aに1が代入されていたら実行される'
elsif a == 2
  puts 'aに2が代入されていたら実行される'
else
  puts 'aに1も2も代入されていなかったら実行される'
end

修正したプログラムを実行する

修正したプログラムをコマンドライン上で実行します。
elsifelseで囲まれた部分の処理である、「aに2が代入されていたら実行される」という文字列が表示されます。

$ ruby -Ku elsif.rb # Windowsの場合-Kuオプション指定
aに2が代入されていたら実行される

変数aに代入する値を再度変更する

ifの条件式にもelsifの条件式にも当てはまらなかった場合に実行されるプログラムを確認するために、変数aの値を0に書き換えてプログラムを保存します。

# elsifやcaseを使って複数の条件で実行する処理を分けよう
a = 0 # ←書き換える

if a == 1
  puts 'aに1が代入されていたら実行される'
elsif a == 2
  puts 'aに2が代入されていたら実行される'
else
  puts 'aに1も2も代入されていなかったら実行される'
end

再度修正したプログラムを実行する

再度修正したプログラムをコマンドライン上で実行します。
elseendで囲まれた部分の処理である、「aに1も2も代入されていなかったら実行される」という文字列が表示されます。

$ ruby -Ku elsif.rb # Windowsの場合-Kuオプション指定
aに12も代入されていなかったら実行される

caseが記述されたプログラムを確認する

テキストエディタを開き以下のようなプログラムを記述しcase.rbとして保存します。

# elsifやcaseを使って複数の条件で実行する処理を分けよう
a = 1

case a
when 1
  puts 'aに1が代入されていたら実行される'
when 2
  puts 'aに2が代入されていたら実行される'
else
  puts 'aに1も2も代入されていなかったら実行される'
end

caseが記述されたプログラムを実行する

コマンドライン上でcaseが記述されたプログラムcase.rbをファイル指定して実行します。
「aに1が代入されていたら実行される」という文字列が表示され、1つ目のwhen直後のプログラム行だけが実行されていることが分かります。

$ ruby case.rb # Windowsの場合-Kuオプション指定
aに1が代入されていたら実行される

変数aに代入する値を変更する

2つ目のwhenの値である2に合致した場合に実行されるプログラムを確認するために、変数aの値を2に書き換えてプログラムを保存します。

# elsifやcaseを使って複数の条件で実行する処理を分けよう
a = 2 # ←書き換える

case a
when 1
  puts 'aに1が代入されていたら実行される'
when 2
  puts 'aに2が代入されていたら実行される'
else
  puts 'aに1も2も代入されていなかったら実行される'
end

修正したプログラムを実行する

修正したプログラムをコマンドライン上で実行します。
2番目のwhenelseで囲まれた部分の処理である、「aに2が代入されていたら実行される」という文字列が表示されます。

$ ruby -Ku case.rb # Windowsの場合-Kuオプション指定
aに2が代入されていたら実行される

変数aに代入する値を再度変更する

2つのwhenで定義されている値である、1にも2にも当てはまらなかった場合に実行されるプログラムを確認するために、変数aの値を0に書き換えてプログラムを保存します。

# elsifやcaseを使って複数の条件で実行する処理を分けよう
a = 0 # ←書き換える

case a
when 1
  puts 'aに1が代入されていたら実行される'
when 2
  puts 'aに2が代入されていたら実行される'
else
  puts 'aに1も2も代入されていなかったら実行される'
end

再度修正したプログラムを実行する

再度修正したプログラムをコマンドライン上で実行します。
elseendで囲まれた部分の処理である「aに1も2も代入されていなかったら実行される」という文字列が表示されます。

$ ruby case.rb # Windowsの場合-Kuオプション指定
aに12も代入されていなかったら実行される