一道VB题目

OptionBase1PrivateSubForm_Click()y=43x=Array(21,4,50,18,23,44,87,32,67,70)Fori=1To10I... Option Base 1
Private Sub Form_Click()
y = 43
x = Array(21, 4, 50, 18, 23, 44, 87, 32, 67, 70)
For i = 1 To 10
If x(i) < y Then
z = x(i) + 1
y = x(i)
Else
z = z + y
End If
Next i
Print z
End Sub
单击窗体后结果是37,为什么啊?这里的“z = x(i) + 1”中的z和“z = z + y”中的z一不一样啊?我要详细一点,非常感谢。。。。。
不好意思啊,i=3时,x(3)=50,z=10,z为什么是10啊?看不懂呢,怎么来的啊,还有if后面的为什么只执行2次啊,“If x(i) < y Then”里的y难道不是一直是43吗?
展开
 我来答
89248541
2010-09-19 · TA获得超过538个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:170万
展开全部
问题出在y=x(i)这里,因为第一次循环之后,Y的值已经改变,第二次循环的时候Y的值已经变成21…………
你最好把你这个程序的最终目标告诉我,这样才好找到原因,你把Print z 放在end if之后看看,每次的Z的结果就会打印出来。
我觉得如果你需要每次Y的值是43,那么你可以把y=x(i)删掉。
Kamianti
2010-09-18 · TA获得超过354个赞
知道答主
回答量:87
采纳率:0%
帮助的人:28.1万
展开全部
i=1时,x(1)=21,z=22,y=21
i=2时,x(2)=4,z=5,y=4
i=3时,x(3)=50,z=10,从这开始y一直是4
以后z=z+4即z从5+4开始一直加到37
z = x(i) + 1”中的z和“z = z + y”中的z是一样的,但是IF执行选择时只能执行其中的一项,前两次选择的是IF,后面全部选择的是ELSE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式