为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2021-06-22 18:15:58
for next 语句看不懂啊Sub For_test()For i = 1 To 10For j = 1 To 10For k = 1 To 10i = i + 1Next kNext jNext iEnd Sub这是个例题,叫测试嵌套循环的计数器.这是个不满足循环条件的例题,i的范围不对,书上说i运行到最后为101,不符合1到10的范围,所以最后程序将被退出.我现在都看不懂啊.为什么是101啊
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

这道题叫测试嵌套循环的计数器.首先之所以说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语句时,本层的循环变量自动递增会递减一个步长值,然后根据终值条件判断是否满足,如果满足则循环继续进行,不满足则本层循环结束.



查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 498 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信