Rubyの制御構文を学ぶ【プログラミング初心者向け教材】

プログラミング
スポンサーリンク

HelloWorldを学習した後に、何を学ぶべきか迷っている方もいると思いますが、まずは基本的な制御構文を学習することをおすすめします。

制御構文とは、if文やfor文のことですが、プログラミングではどの言語においても、この2つの制御構文が超重要事項です。

そこで本記事では、制御構文の学習第4弾として、Rubyにおける制御構文をまとめます。

制御構文とは何かという説明については、以下の記事をご参照ください。

JavaScriptの制御構文を学ぶ【プログラミング初心者向け教材】
HelloWorldを学習した後に、何を学ぶべきか迷っている方もいると思いますが、まずは基本的な制御構文を学習することをおすすめします。 本記事では、制御構文について簡単に解説し、JavaScriptにおける制御構文をまとめます。

書き方を忘れてしまった方の復習としても、お役に立てていただければと思います。

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の制御構文として分岐処理と繰返し処理をいくつか紹介しました。

お役に立てば幸いです。

コメント

タイトルとURLをコピーしました