Menu
CoddyTech

访问二维数组元素

本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 11 课,共 56 课。

要读取或更新二维数组中的单个单元格,可以连续使用两次索引查找:第一次选取行,第二次选取列。

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]

两个实用的形状查询:

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

索引从 0 开始,最大到 length - 1。超出末尾时会返回 nil,而不是引发错误。

challenge icon

挑战

入门

给定二维数组 matrix。读取三个整数(共三行):r1、c1,然后是 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 赋给它,最后输出整个 matrix
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Ruby 在线编译器