访问二维数组元素
本课属于 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,而不是引发错误。
挑战
入门给定二维数组 matrix。读取三个整数(共三行):r1、c1,然后是 v。接着:
- 输出
matrix[r1][c1]的值 - 将
matrix[r1][c1] = v - 使用
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
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Ruby 在线编译器