HelloWorldを学習した後に、何を学ぶべきか迷っている方もいると思いますが、まずは基本的な制御構文を学習することをおすすめします。
制御構文とは、if文やfor文のことですが、プログラミングではどの言語においても、この2つの制御構文が超重要事項です。
そこで本記事では、制御構文の学習第4弾として、Rubyにおける制御構文をまとめます。
制御構文とは何かという説明については、以下の記事をご参照ください。
書き方を忘れてしまった方の復習としても、お役に立てていただければと思います。
Rubyの分岐
Rubyの分岐には、if文、unless文、case文があります。
if文
if文の基本的な構文は以下となります。
if 条件式A then 条件式Aが成立した場合の処理 elsif 条件式B then 条件Bが成立した場合の処理 else 条件式Aにも条件式Bにも成立しない場合の処理 end
条件A→条件Bという順番で判定します。
条件Aにも条件Bにも当てはまる場合には、条件Aが成立した場合の処理が行われます。
その場合、条件Bの判定(else if文の実行)は行われません。
次に例文です。(変数aとbには数値が入っている前提です)
if a < b then puts "a より b の方が大きい" elsif a > b then puts "b より a の方が大きい" else puts "a と b は同一" end
unless文
unless文は、if文の条件式が逆となる分岐処理です。
つまり、if文は条件式が成立した場合にthen以下の処理を実行しますが、unless文は条件式が成立しなかった時にthen節の処理を実行します。
基本的な構文は以下となります。
unless 条件式A then 条件式Aが成立しなかった場合の処理 else 条件式Aが成立した場合の処理 end
unless文にelsifを指定することはできません。
次に例文です。(変数aとbには数値が入っている前提です)
unless a < b then puts "a は b 以上" else puts "a より b の方が小さい" end
case文
case文は、他の言語のswitch文と同じようなもので、式に対して一致するwhen節の処理を実行します。
基本的な構文は以下となります。
case 式 when 値A then 式の評価結果が値Aと一致する場合の処理 when 値B then 式の評価結果が値Bと一致する場合の処理 else 式の評価結果が値Aとも値Bとも一致しない場合の処理 end
1つのwhenの値には複数(値X,値Y,値Zのように記述する)を指定することができます。
また、他の言語のswitch文ではbreakを指定しないとswitch文を抜けることができませんが、Rubyはbreakを指定する必要はありません。
次に例文です。(変数sには文字列が入っている前提です)
case s when "Ruby" then puts s # 標準出力に「Ruby」と表示される when "Go" puts s # 標準出力に「Go」と表示される else puts s # 標準出力に「Ruby」「Go」でない変数sに入っている文字列が表示される end
Rubyの繰返し
Rubyの繰返しには、while文、until文、for文の3種類があります。
while文
while文は条件式の結果がtrueに評価されている間、while文以下の処理を繰返し実行します。
基本的な構文は以下のとおりです。
while 条件式 do 繰返し実行する処理 end
最初に条件式を評価するため、初期状態で条件式の結果がfalseとなる場合は、一度も繰返し処理が実行されません。
また、繰返し処理が最後まで到達すると、再度条件式を評価します。
条件式の結果がtrueの間、繰返し処理を実行するため、条件式がずっとtrueのまま無限ループとなってしまわないように注意が必要です。
次に例文です。
i = 0 while i < 10 do puts i i += 1 end
until文
until文は、if文におけるunless文の関係と同じで、条件式の結果がfalseに評価されている間、
基本的な構文は以下のとおりです。
until 条件式 do 繰返し実行する処理 end
例文は以下のとおりです。
i = 10 until i < 0 do puts i i -= 1 end
for文
for文は配列やオブジェクトの各要素に対して、繰返し処理を行います。
基本的な構文は以下のとおりです。
for 変数 in オブジェクト do 繰返し実行する処理 end
例文は以下のとおりです。
for num in [1,2,3] do puts num end
Rubyに便利なメソッドがたくさん用意されている
今回は紹介しきれませんでしたが、Rubyのオブジェクトが持つメソッドを利用すると、繰返し処理を簡単に記述することができる機能が数多く提供されています。
よく使われるパターンを学習して、効果的に利用できると、読みやすくわかりやすいプログラムを記述することができます。
今回はRubyの制御構文として分岐処理と繰返し処理をいくつか紹介しました。
お役に立てば幸いです。
コメント