for next 语句看不懂啊Sub For_test()For i = 1 To 10For j = 1 To 10F

wangdailulu2022-10-04 11:39:541条回答

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啊

已提交,审核后显示!提交回复

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

相关推荐

vb.net 用for next 循环 而且要显示 共计算了N次
vb.net 用for next 循环 而且要显示 共计算了N次
要显示共计算了N次 这个句子怎么写》》》》》!紧急!
疤面猪头三1年前1
我是二黑 共回答了15个问题 | 采纳率86.7%
在循环体中用一个变量累加计算
Dim t As Integer
For i = 0 To 100
.
.
.
t += 1
Next
Debug.Writeline("共循环了:" & t & "次.")
VBScript中用for next循环语句求1到100内的奇数或偶数的和写详细点
walu1年前1
帮着大家一起 共回答了15个问题 | 采纳率86.7%
cv
for next 循环s=0for i=1 to 10 step 2s=s+1i=I*2next i当循环变量后,i,s
for next 循环
s=0
for i=1 to 10 step 2
s=s+1
i=I*2
next i
当循环变量后,i,s的值各为()
wwsummer1年前1
i_love1979 共回答了14个问题 | 采纳率100%
i = 22
s = 3
第一次循环:
i开始等于1,结束之前乘2再加2,等于4
s开始等于0,结束前加1,等于1
第二次循环:
i开始等于4,结束之前乘2再加2,等于10
s开始等于1,结束前加1,等于2
第三次循环:
i开始等于10,结束之前乘2再加2,等于22
s开始等于2,结束前加1,等于3
vba的for next循环语句内部机制是如何的?在其运转期间改变终值(一变量)是否会影响循环次数?
6253932241年前1
刚朵拉 共回答了18个问题 | 采纳率94.4%
会的 你可以试试单步运行看看Dim i, j
j = 0
For i = 1 to 10
j = j + 1
i = 10
Msgbox i chr(13) j
Next i