求解关于语句fori=1 to na(i,1)= 1a(i,i)= 1next的问题?如下题

for next 语句看不懂啊
Sub For_test()
For i = 1 To 10
For j = 1 To 10
For k = 1 To 10
i = i + 1
Next k
Next j
Next i
End Sub
这是个例题,叫测试嵌套循环的计数器.这是个不满足循环条件的例题,i的范围不对,书上说i运行到最后为101,不符合1到10的范围,所以最后程序将被退出.我现在都看不懂啊.为什么是101啊



BIG阳
浏览 514回答 1
1回答

繁星淼淼

这道题叫测试嵌套循环的计数器.首先之所以说i的范围不对,不满足循环条件,是因为一般在FOR循环中循环变量会根据步长值自动增加或减少,所以在循环体内不建议改变循环变量的值,而本题中循环体里出现了i=i+1的语句,就改变了循环变量i的值了.其次,运行结果是是101,本题是三层嵌套循环是,i控制第一层循环,j控制第二层,k控制第三层,当循环开始时,i去值1,j取值1,k取值1执行循环体一次,i累加1,也就是i变为2此时k自动增加一个步长变成2,因为k的取值实在1到10之间判断条件,满足,所以继续执行循环体,i继续累加,如此重复直到k取值为10时,i累加的结果变成11,k继续增加一个步长变成11超出范围,到此第三层循环退出,第二层循环的j继续递增一个步长变成了2,此时又重新进入第三层循环k重新从1循环到10,i继续每次累加1,累加的结果是i变成21,当k去取10之后,继续递增一个步长值变成11,第三层循环有一次推出,第二层循环的j继续递增一个步长值变成3,第三层循环又重新开始,如此重复.当第二层循环的变量j循环到10的时候,第三层循环的变量k又从1循环到10,i的递增结果变成了101,k继续递增一个步长值变成11不符合条件,结束第三层循环,第二层的j也递增一个步长变成11不符合条件,第二层循环也结束,第一层的循环变量是i,i遇到next i语句继续递增变成102,判断条件不成立,第一层循环也结束,所以最后程序结束以后,i,j ,k三个循环变量的值应该是102,11,11.最后需要强调的是对于for循环,程序执行到next语句时,本层的循环变量自动递增会递减一个步长值,然后根据终值条件判断是否满足,如果满足则循环继续进行,不满足则本层循环结束.
打开App,查看更多内容
随时随地看视频慕课网APP