配列の作成と基本操作を学ぼう
学習の目標
本章では、以下の内容を学びます。
- 配列の概念と基本的な作成方法を理解する
- 配列から要素を取り出す方法を習得する
- 配列の長さを調べる方法を学ぶ
- 範囲を指定して要素を取り出す方法を理解する
はじめに
プログラミングをしていると、複数のデータをまとめて管理したい場面がよくあります。例えば、クラスの生徒の名前リストや、テストの点数を記録したりする場合などです。
これらのデータを一つずつ別々の変数に格納していくと、とても管理しづらくなってしまいます。そこで登場するのが配列です。
配列は、複数のデータをまとめて管理できる便利な機能で、Rubyプログラミングでも頻繁に使われます。この章では、配列の基本的な使い方を学んでいきましょう。
配列の作成方法
配列を作るには、角括弧[]
の中に値を並べて書きます。値と値の間はカンマ(,)で区切り、カンマの後には半角スペースを入れるのが一般的です。
numbers = [1, 2, 3, 4, 5]puts numbers # 1, 2, 3, 4, 5 が順番に表示される
文字列を入れることもできます。
fruits = ["りんご", "バナナ", "みかん"]puts fruits # りんご、バナナ、みかんが順番に表示される
数値と文字列を混ぜて入れることも可能です。Rubyの配列はさまざまな型の要素を一緒に格納できるという柔軟さがあります。
mixed = [1, "りんご", 2, "バナナ"]puts mixed # 1、りんご、2、バナナが順番に表示される
%記法による配列の作成
文字列の配列を作る場合、Rubyには%記法
という便利な書き方があります。%w
を使うと、スペースで区切って文字列の配列を作れます。
fruits = %w[りんご バナナ みかん]puts fruits # りんご、バナナ、みかんが順番に表示される
この書き方は文字列をたくさん並べる場合に便利です。クォーテーションを書く必要がなく、コードがすっきりして読みやすくなります。
大文字の%W
を使うと、式展開もできます。式展開とは、文字列の中に変数や計算結果を埋め込む機能のことです。
melon = "メロン"fruits = %W[りんご バナナ #{melon}]puts fruits # りんご、バナナ、メロンが順番に表示される
上記の例では、#{melon}
の部分が変数melon
の値である「メロン」に置き換えられています。
配列の要素を取り出す
配列から値を取り出すには、インデックス(何番目の値か)を指定します。Rubyでは、最初の値は0番目から始まります。これは多くのプログラミング言語で共通の考え方です。
fruits = ["りんご", "バナナ", "みかん"]puts fruits[0] # りんごputs fruits[1] # バナナputs fruits[2] # みかん
この例では、fruits[0]
は配列の最初の要素(「りんご」)を、fruits[1]
は2番目の要素(「バナナ」)を、fruits[2]
は3番目の要素(「みかん」)を取り出しています。
存在しない番号(インデックス)を指定すると、nil
が返ってきます。
puts fruits[3] # nil
負のインデックスの使用
配列の要素を後ろから取り出したい場合は、負の数のインデックスを使います。これは配列の最後の要素から遡って数える方法です。
puts fruits[-1] # みかん(最後の要素)puts fruits[-2] # バナナ(後ろから2番目の要素)
-1
は配列の最後の要素を、-2
は後ろから2番目の要素を指します。この方法は配列の長さを知らなくても最後の要素にアクセスできるので、とても便利です。
配列の長さを調べる
配列に含まれている要素の数(配列の長さ)を調べるには、length
メソッドを使います。
fruits = ["りんご", "バナナ", "みかん"]puts fruits.length # 3
この例では、fruits
配列に3つの要素があるため、3
が表示されます。配列の長さは、プログラミングの様々な場面で使われる重要な情報です。
範囲を指定して要素を取り出す
配列から複数の値をまとめて取り出すこともできます。これは「スライス」と呼ばれる操作で、範囲を指定して部分配列(配列の一部分)を取得します。スライスとは、パンをスライスするように、配列の一部を切り取る操作をイメージするとわかりやすいでしょう。
numbers = [1, 2, 3, 4, 5]puts numbers[1..3] # 2, 3, 4 が表示される
この例では、1..3
という範囲指定を使って、インデックス1から3までの要素(2, 3, 4)を取り出しています。
Rubyには2種類の範囲演算子があります。
..
(ドット2つ): 両端を含む範囲...
(ドット3つ): 最後の値を含まない範囲
puts numbers[1...3] # 2, 3 が表示される(4は含まれない)
この例では、1...3
という範囲指定を使っているため、インデックス1から2までの要素(2, 3)だけが取り出されます。インデックス3の要素(4)は含まれません。
実用的な配列の使用例
配列は実際のプログラミングでも幅広く使われています。いくつか実用的な例を見てみましょう。
生徒の名前を管理する
students = ["山田", "鈴木", "佐藤", "田中", "高橋"]
# クラスの人数を表示puts "クラスの人数: #{students.length}人"
# 出席番号1番の生徒を表示puts "出席番号1番: #{students[0]}"
テストの点数を管理する
scores = [85, 92, 78, 90, 88]
# 平均点を計算average = scores.sum / scores.lengthputs "平均点: #{average}点"
# 最高点を表示puts "最高点: #{scores.max}点"
週間の予定を管理する
schedule = ["会議", "資料作成", "打ち合わせ", "休み", "勉強会", "家族サービス", "休み"]
# 今日の予定を表示(0が日曜日、6が土曜日)today = Time.now.wday # 現在の曜日(0-6)puts "今日の予定: #{schedule[today]}"
まとめ
本章では配列の基本的な使い方について学びました。以下の内容を理解できたことと思います。
- 配列は複数の値をまとめて管理できる便利な機能
- 角括弧
[]
を使って配列を作成する方法 %w
や%W
を使った文字列配列の簡潔な作成方法- インデックスを指定して要素を取り出す方法
- 負のインデックスを使って後ろから要素を取り出す方法
length
メソッドで配列の長さを調べる方法- 範囲を指定して複数の要素を取り出す方法
配列は値をまとめて管理できる便利な機能です。次回は、配列に値を追加したり削除したりする方法を学んでいきます。
Starterプランでより詳しく学習
この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。