一个VB计算题,请朋友指教

来源:百度知道 编辑:UC知道 时间:2024/06/27 17:57:59
Option Explicit

Private Sub Form_Click()
Dim I As Integer, Sum As Integer
For I = 0.5 To 8.5 Step 2.5
Sum = Sum + I * 10
Next I
Print Sum
Print I

End Sub
程序计算结果是200 10
请朋友帮我写一下计算过程,我的结果是170和8,不知道到底错在哪里,都算了好几次了,谢谢了!在线等.

算这个要知道什么是隐式转换.

当你声明i as integer时,所有i的取值必须是整形

当把Double赋给i时,要进行节断,只取整数部分,所以
For I = 0.5 To 8.5 Step 2.5
变成
For I = 0 To 8 Step 2
I的取值为0,2,4,6,8
sum = 0*10 +2*10+4*10+6*10+8*10=200
i的值为8时,程序并不知i的下一个取值不合法,要进行运算.
先把i的值加2 为10,判断超出8,退出循环,所以,此时i为10

执行print pf(x)
第一次进入pf
x=15768>100 -> pf = pf(x \ 100) * 10 + x Mod 10

pf(x \ 100)第二次进入pf:"\"是取整 x=15768
x=157>100 -> pf = pf(x \ 100) * 10 + x Mod 10

pf(x \ 100)第三次进入pf: x=157
x=1<100 ->pf=1
第三次退出.

第二次执行Print pf
此时pf = pf(x \ 100) * 10 + x Mod 10 =1*10+157 mod 10=10+7=17
第一次执行Print pf
pf = pf(x \ 100) * 10 + x Mod 10=17*10+15768 mod 10=170+8=178

Command1_Click()执行
Print pf(x) ->print 178

i=0.5时sum=0+0.5*10=5
i=3时sum=5+3*10=35
i=5.5时sum=35+5.5*10=90
i=8时sum=90+8*10=170
i=10.5时不满足循环条件退出循环,执行下面的程序...