Java二维数组v的计算逻辑解析及结果成因问询
代码逻辑解析与最终数组推导
核心代码逻辑说明
v[row][j] += b[i][j];:这是累加赋值操作,等价于v[row][j] = v[row][j] + b[i][j]。作用是把二维数组b中第i行第j列的数值,加到v数组中第row行第j列的位置上。row = (row + 1) % 2;:这是让row在0和1之间交替切换的逻辑。因为%2取模运算的结果只会是0或1,所以每次循环后,row会从0变1,再从1变0,循环往复。
逐步骤推导v数组的最终结果
初始状态:v是2行4列的数组,所有元素默认值为0,row初始值为0。
处理b数组第0行(i=0)
遍历j=0到3,把b[0][j]的数值累加到v[0][j]:- v[0][0] = 0 + 1 = 1
- v[0][1] = 0 + 2 = 2
- v[0][2] = 0 + 3 = 3
- v[0][3] = 0 + 4 = 4
执行row = (0+1)%2,row变为1。
处理b数组第1行(i=1)
遍历j=0到3,把b[1][j]的数值累加到v[1][j]:- v[1][0] = 0 + 1 = 1
- v[1][1] = 0 + 0 = 0
- v[1][2] = 0 + 1 = 1
- v[1][3] = 0 + 0 = 0
执行row = (1+1)%2,row变为0。
处理b数组第2行(i=2)
遍历j=0到3,把b[2][j]的数值累加到v[0][j]:- v[0][0] = 1 + 0 = 1
- v[0][1] = 2 + 1 = 3
- v[0][2] = 3 + 0 = 3
- v[0][3] = 4 + 1 = 5
执行row = (0+1)%2,row变为1。
处理b数组第3行(i=3)
遍历j=0到3,把b[3][j]的数值累加到v[1][j]:- v[1][0] = 1 + 1 = 2
- v[1][1] = 0 + 0 = 0
- v[1][2] = 1 + 1 = 2
- v[1][3] = 0 + 0 = 0
执行row = (1+1)%2,row变为0。
最终v数组结果
v = { {1, 3, 3, 5}, {2, 0, 2, 0} }
内容的提问来源于stack exchange,提问作者Kim
相关产品推荐
相关产品推荐

