请解析一下这个程序PrivateSubCommand1_Clic
Private Sub ommand1_Click() Dim i As Integer, n As Integer, m As Integer For i = 0 To 50 i = i + 3 n = n + 1 Next i Print i End Sub 输出的是52 若这样Private Sub Command1_Click() Dim i As Integer, n As Integer, m As Integer For i = 0 To 50 i = i + 3 n
关键的就在于打印语句是在循环体里还在循环体外,第一个由于如果步长为1,循环体内和循环体外,i值相差就是1,这是常识,为什么一个最后值是51一个只打出52,这就是因打印语句在循环体内和循环体外的原因,下面具体的分析一下给你听,前面都不管他,从i循环到44说起,当i=44时,经i=i+3后为47,回到循环开始处i被加1变成48,48没有满足循环退出条件,继续循环,又一次执行i=i+3后变成51,这就到了关键时候了,第二个程序,打印语句放在循环体内,所以最后一个就是打印这个51了,但是程序并不是这样就退出循环的,它还要回到循环开始此作一次比较看有没有满足条件,满足了才不循环,没满足还循环,而这一回到循环开始处,i再一次被加1就变成了52,52显然是超出了循环所限定的条件,所以循环结果,执行后面的语句。也就是执行Print i所以第一个程序打印出来的是52