关于VB数组的问题
dim aver as integer, mark(1 to 10) as integer
for i=1 to 10
mark(i)=inputbox("输入第" & i & "位学生的成绩","数据录入")
if mark(i)>maxmark then maxmark=mark(i)
aver=aver+mark(i)
next
print aver
print maxmark
问题:这里已经有定义了一个mark(1 to 10),表示有10个integer类型的元素,从mark(1)到mark(10);但是为什么这里又有一个mark(i),也是表示从mark(1)到mark(10),这是为什么啊,是什么意思呢!好像有点矛盾了吧。这是书上的例题,我真的搞不清楚什么回事?
请各位VB的高手来看看,到底数组与循环结构是怎样捆在一起使用的。请详细的解说上面的程序,小妹是个菜鸟,有很多关于VB东西都不懂的,请各位高手帮帮忙。
参考答案:很简单的,上面用了for循环语句将从1到10依次赋值给变量i,也就是说,当执行第一次循环时,i的值为1,mark(i)也就变成了mark(1),依次类推...
这样mark(i)就代表了从mark(1)到mark(10)了.
补充一下,下面是for循环语句的用法:
For <循环变量>=<初赋值> To <终值> [Step <步长>]
……
……
Next <循环变量>
在默认情况下,Step被设为“1”,可以省略,Step也可以设为负值,例如:
Dim a=0
For I=1 To 10
a=a+I
Next I
这是一个最简单的累加器的例子,把1到10累加在一起,然后赋值给“a”.
还有不懂的地方吗?说出来,我告诉你