一道VB运行结果题,答案已知,求解释运行过程,麻烦详细一点

如题所述

Option Explicit

Option Base 1

Private Sub Command1_Click()
  Dim i As Integer, j As Integer, m As Integer, a() As Integer
  m = 4
  ReDim a(m, m)
  For i = 1 To m
   a(1, i) = (m - i + 1) ^ 2 '把计算结果放入二维数组第一行的各列中
  Next                       '16  9  4  1
  
  For i = 2 To m
   For j = 1 To m - 1
    a(i, j) = a(i - 1, j + 1) '把当前行前3列的数据前移一列并放入下一行前三列
   Next
   a(i, j) = a(i - 1, 1) '把前一行第一列数所放入下一行的第4列
  Next
  For i = 1 To m
   For j = 1 To m
    Debug.Print a(i, j);
   Next
   Debug.Print
  Next

End Sub

for j=1 to m-1 等于 for j=1 to 3,当j循环全部循环完后,j的值为4

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-30



图片太大、能否有帮助?

追答

追问

我的意思是,Next i,i=2+1=3,那么就是a(3,1)=a(3-1,1)=a(2,1),怎么得出=4的呢。a(1,1)到a(1,4)在第一个For Next循环里算出来了。可是a(2,j)没有啊

追答

你可能将 j 看错成 1 了吧、应该是a(i,j)=a(讠-1,1)。即i=3时、a(3,j)=a(2,1)。这个时候 j 已经是内循环完了、应该是j=4了、所以是第4列的元素由上-行第1列的元素赋值、即 a(3,4)=a(2,1)。

Next j 下面为什么j=4 ?是因为内循环 j=1 to m-1 即1~3 执行完 再执行Next j时、j=3+1=4的时候、内循环结束。所以外循环体的下一语句a(i,j)=a(i-1,1)中的j是4了。

追问

谢谢您的回答。

追答

不客气!

本回答被提问者采纳
相似回答