VB简单循环问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 11:15:57
Private Sub Form_Load()
Dim a, b, s, i As Integer
a = Val(Text1.Text)
a = Val(Text2.Text)
s = 0
i = a
Do While i <= b
s = s + i
i = i + 1
Loop
MsgBox "计算结果为:" & s
End Sub

这是用来计算闭区间[a,b]之间数字求和的问题,但是自己写s = s + i
i = i + 1这句的时候总是没有感觉,希望大家能够给详细解释下,谢谢。

这两句的顺序是不能随便换的,否则就会出错,为什么?
谢谢大家
不好意思,失误了,



b=Val(Text2.Text)

Private Sub Form_Load()
Dim a, b, s, i As Integer
a = Val(Text1.Text)
B = Val(Text2.Text)
s = 0
i = a
Do While i <= b
s = s + i
i = i + 1
Loop
MsgBox "计算结果为:" & s
End Sub
先声明:面的代码是正确的!
对你上面的问题给出解释:
进入循环的时候,
i=a,而你的要求是计算[a,b]的和
a要加到其中,所以,应该先将a加到s中,也就是s=s+i (i这时候是=a的)
然后再对i进行+1,变成下一个数,loop返回后,如果没有超过B,就继续加到S中

至于 为什么不能交换?
如果你先i=i+1,这时,第一个被加的数,就是a+1,而不是a,所以不能交换,而且最后加的数,也不是b,而是B+1
这时,计算出来的结果,实际上是[a+1,B+1]的和
其实,这题最好用For...Next循环:
a=val(text1.text)
b=val(text2.text)
for i=a to b
s=s+i
next
msgbox s
这样就没有你所说的问题了

你这代码好像有问题吧!~

a = Val(Text1.Text)
a = Val(Text2.Text)

上面第二个应该是b = Val(Text2.Text) 对吗?

如果你把i=i+1拿到上面了 意思就变了!~ 你要先把i的值给s 自己写代码的时候想一想你要写什么