Menu
Coddy logo textTech

2次元要素へのアクセス

CoddyのRubyジャーニー「ロジックとフロー」セクションの一部。レッスン 11/56。

2次元配列内の単一の cell を読み取ったり更新したりするには、2つのインデックス検索を連結します。1つ目で row を選び、2つ目で column を選びます。

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

puts matrix[0][0]   # 10  (左上)
puts matrix[1][2]   # 60  (行 1、列 2)
puts matrix[2][0]   # 70  (左下)

セルの更新には、左辺でも同じ構文を使用します。

matrix[0][1] = 99
puts matrix[0].inspect   # [10, 99, 30]

便利な形状クエリが 2 つあります:

puts matrix.length         # 3(行の数)
puts matrix[0].length      # 3(行0の列数)

インデックスは 0 から始まり、length - 1 まで続きます。末尾を越えると、エラーが発生する代わりに nil が返されます。

challenge icon

チャレンジ

初心者

2D 配列 matrix が与えられます。3 つの整数(3 行)を読み込みます:r1c1、次に v。次に:

  1. matrix[r1][c1] の値を出力する
  2. matrix[r1][c1] = v を設定する
  3. inspect を使って更新後の matrix 全体を出力する

入力が 1 / 2 / 99 の場合、出力は次のとおりです:

60
[[10, 20, 30], [40, 50, 99], [70, 80, 90]]

自分で試してみよう

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

r1 = gets.to_i
c1 = gets.to_i
v  = gets.to_i

# TODO: matrix[r1][c1] を出力し、v を代入してから、行列全体を出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Rubyオンラインコンパイラ