二道vb编程题,代码什么意思,看不懂?详细解释一下,谢谢!!

Private Sub Command1_Click()
Dim a()
a = Array(7, 8, 9, 10)
For k = 0 To 2 Step 0.5
s = s + a(k)
Next k
Print s
End Sub
结果是40
Dim j
For j = 1 To 13 Step 2
j = j * 3 - 1
Print j
Next j
结果是2 11 38

Private Sub Command1_Click()
Dim a() '定义a为数组
a = Array(7, 8, 9, 10) '给数组添加四个值
For k = 0 To 2 Step 0.5 '循环中k的值按顺序为0,0.5,1,1.5,2
s = s + a(k) '累加a(k),但元素数不是小数,所以a(k)的值依次为a(0),a(0),a(1),a(2),a(2),即7+7+8+9+9=40 注意,只有大于1的时候,小数才使用四舍五入而变为整数,系统默认将0.5取整变为0
Next k
Print s '打印结果
End Sub

Dim j '定义变量j
For j = 1 To 13 Step 2 '本来j的值是1,3,5,...,13,但是……
j = j * 3 - 1 '赋j值为自身的三倍减一
Print j '打印结果
Next j '注意!此时j值已改变,见下面分析。

循环头 运算 打印 循环变量累加 下一个循环的j值
j=1 >>> j=j * 3 - 1 >>> j=2 >>>(Next) j=j + 2 >>> j=4
j=4 >>> j=j * 3 - 1 >>> j=11 >>>(Next) j=j + 2 >>> j=13
j=13 >>> j= j * 3 - 1 >>> j=38 >>>(Next) j=j + 2 >>> j= 40 此时j已大于13,退出循环

明白了吧,因为循环变量在循环里面值被改变,所以未能按照1,3,5,... ,13的顺序变化,而是跳跃了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-08-12
Private Sub Command1_Click()
Dim a() //定义数组a
a = Array(7, 8, 9, 10) //给数组元素0到3赋值7到10
For k = 0 To 2 Step 0.5 //for循环,k从0到2,每次累加0.5,就是一共执行for里的语句5次
s = s + a(k) //这里,s是求和累加器,比如第一次k=0,s就取数组元素0的值7,第二次k=0.5(本应该是四舍五入得1,可因为这是整型数,vb到x.6才会进为1,另外k只有取1.5的时候会自动向前进为2,别的都不会,我也不知是什么原因...是不是叫bug呢呵呵,无语),s取数组元素1的值8。所以s的整个累加过程为7+7+8+9+9=40,对应了a(0)+a(0)+a(1)+a(2)+a(2)
Next k //下一个k值
Print s //最终打印s的值
End Sub

Dim j
For j = 1 To 13 Step 2 //for循环,从1开始到13结束,每轮j累加2
j = j * 3 - 1 //第一轮,j=1,计算后j=1*3-1=2。第二轮,j=2+2(由于开头的step2)=4,j=4*3-1=11。第三轮,j=11+2=13(也由于开头的step2,累加2的步长),j=13*3-1=38。(由于之前到了j的终值13,所以不会继续循环)
Print j //打印j的值
Next j

够详细了吧?
第2个回答  2007-08-12
就是For循环的应用,step就是步长,就是从1到3,3到5,5到7,以此类推
for 循环
for [变量]=[起始量] to [终止量]{step [步长]}
[中间代码]
.............
next [变量]
其中{}中是可以省略的,默认为1
第3个回答  2007-08-12
从0开始s=a(0)+a(0.5)+a(1)+a(1.5)+a(2)
因为a = Array(7, 8, 9, 10)
所以s=7+7+8+9+9=40

第二个注意了,他的循环变量是j,但在循环体中j又是在变的
第一次循环时j=1,那么输出j=1*3-1=2
第二次循环时j=4(之前2再加步长2),那么输出j=4*3-1=11
第三次循环时j=13(之前11再加步长2),那么输出j=13*3-1=38

推荐你在VB上下断点跟踪下就出来了
第4个回答  2007-08-13
从0开始s=a(0)+a(0.5)+a(1)+a(1.5)+a(2)
因为a = Array(7, 8, 9, 10)
所以s=7+7+8+9+9=40

第二个注意了,他的循环变量是j,但在循环体中j又是在变的
第一次循环时j=1,那么输出j=1*3-1=2
第二次循环时j=4(之前2再加步长2),那么输出j=4*3-1=11
第三次循环时j=13(之前11再加步长2),那么输出j=13*3-1=38

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网