これからRubyの勉強を始めようと考えているあなたに、Rubyのプログラムの書き方を紹介します。
この記事では、Rubyでの配列の扱い方とループの使い方について解説します。
配列やループを使うと何が嬉しいのか
プログラムでは、
- 同じようなデータを塊として処理したい
- 例えば、全てのユーザーや商品のデータなど
- データの塊に対して、同じ処理を適用したい
- 例えば、全てのユーザーにポイントを付与したいなど
といった処理を行うことが多くあります。
そういった場合に、使うのが今回説明する配列とループです。
配列
配列は、複数の他のオブジェクトを管理するためのオブジェクトです。変数では、1つのオブジェクトを管理していましたが、配列では複数の変数をまとめて管理することができます。
配列の作成方法
配列の作成方法にはいくつかの方法があります。
最も簡単な方法は以下の方法で、[]で囲った中に、カンマ(,)で区切って記述します。
構文は以下のようになります。
[オブジェクト1,オブジェクト2,オブジェクト3, ・・・]
具体例は以下のようになります。
array = [3, 7, 9, 10, 15]
配列には異なった種類のオブジェクトを入れることもできます。
以下のような配列を作成することもできます。
array = [3, "Hello",7, 9, "Hoge"]
連番の配列を作成することもできます。
# [1, 2, 3, 4, 5] の配列を作成する
(1..5).to_a
配列の要素の取得
配列の要素を取得する時は、要素の番号を指定します。
(先頭は0なので、注意しましょう。)
array = [3, 7, 9, 10, 15]
array[0] # 3が取得できる
配列の要素の追加
一度作成した配列に要素を追加することができます。
push
メソッドまたは、<<
を使います。
array = [1, 2, 3, 4, 5]
arrat.push(6)
puts[array]
# [1, 2, 3, 4, 5, 6]
array << 7
puts[array]
# [1, 2, 3, 4, 5, 6, 7]
配列の要素の更新
配列の要素を指定して代入することで、配列の要素を更新することができます。
array = [1, 2, 3, 4, 5]
array[2] = 6
puts(array)
# [1, 2, 6, 4, 5]
配列の削除
配列の要素を削除する時は、delete
メソッドを使います。
array = [1, 2, 3, 4, 5]
array.delete(1)
pust(array)
# [2, 3, 4, 5]
ループ
Rubyでは同じ処理を指定した回数、または条件を満たすまで繰り返すことができます。
ループにはいくつか書き方がありますので、それぞれ紹介します。
for
for
構文は前述の配列と組み合わせて使います。
構文は以下のようになります。
for 変数 in 配列 do
実行する処理
end
例えば、配列を作成して配列の中身を全て画面に出力するプログラムは以下のようになります。
array = [1, 2, 3, 4, 5]
for val in array do
puts(val)
end
while
条件式が真(True)の間処理を続けるのがwhile
構文になります。
構文は、以下のようになります。
while 条件式 do
実行する処理
end
例えば設定した変数の値が、10を超えるまで処理を続けるようなwhile
文の例は、以下のようになります。
num = 0
while num <= 10 do
num += 1
puts(num)
end
until
while文とは逆に、条件式が偽(False)の間処理を続けるのがuntil
構文になります。
構文はwhile文と同様です。
until 条件式 do
実行する処理
end
ループの制御
ループを実行していて、
- 途中でループを抜けたい
- 特定のデータは処理を行わず、次のデータに行きたい
といった場合に使用するのが、break
とnext
になります。
それぞれの処理の内容は以下になります。
命令 | 内容 |
---|---|
break | ループを中断し、ループを途中で抜ける |
next | next以降の処理を行わず、次のループに進む |
例えば、番号が5を超えたらループを抜けるというプログラムの例は、以下になります。
num = 0
while num <= 10 do
# numが5を超えたらループを抜ける
if num > 5 then
break
end
num += 1
puts(num)
end
次に、番号が偶数の時だけ表示を行うというようなプログラムは、以下になります。
num = 0
while num <= 10 do
num += 1
# numが5を超えたらループを抜ける
if num % 2 == 0 then
next
end
puts(num)
end
まとめ
この記事では、Rubyでの配列の扱い方とループの使い方について解説しました。
ループはプログラムではよく使う処理なので、しっかりと理解しましょう。
以下の講座で体系的に学ぶのもオススメです。