VBS编程教程 (第5篇)

2019-01-16 08:16:19于海丽


dim name(7),str '一共八个学生, str变量是用来把他们储存成一个字符串以便输出 
for i=0 to 7 
    name(i)=inputbox("请输入第" & i+1 & "个学生的名字") 
    str=str & " " & name(i) 
next 
msgbox(str) 

  这样我们就有了一个小小的数据库, 它们的数据排列可以看成这样: 

  name(0),name(1),name(2).....name(7) 

  看到了吧, 所以我说我们可以把它看成是"一条线", 等到我们学到了文件操作, 就可以把他们输出到文件中去了. 一维数组有很多用处, 我们来看一下一个复杂的例子. 我们要储存3各学生的名字, 身高, 成绩这三种数据, 由于名字是字符串, 而身高可能是浮点数(带小数点的数), 成绩则可能是整数, 所以我们不能把他们储存在一个数组里面(不要忘记, 数组织只能存储同类的数据), 所以我们要建3个数组, 以下是例程: 

dim name(2), high(2), mark(2) '定义三个数组分别储存3个人的名字, 身高和得分 
dim ctr '计数器 
for ctr=0 to 2 
    name(ctr)=inputbox("请输入第"  & ctr+1 & "个学生的姓名") 
    high(ctr)=inputbox("请输入第"  & ctr+1 & "个学生的身高") 
    mark(ctr)=inputbox("请输入第"  & ctr+1 & "个学生的得分") 
next 

  OK, 我们已经填充好了数据, 现在我们的小小数据库只能按顺序输入, 我们要让它看起来像点样子, 我们来给他设计查询功能: 

'接着上面的程序 
dim cname, temp '要查询的名字, 和一个临时变量, 用来储存数据的位置 
cname=inputbox("请输入你要查询的名字:") 
for ctr=0 to 2 '遍历所有name数组的成员, 寻找要查询的名字 
    if name(ctr)=cname then 
        temp=ctr '记录数据位置 
        exit for '退出循环, 和exit do的用法一样 
    end if '不要忘了end if 
next 
msgbox("姓名:" & name(temp) & " " & "身高:" & high(temp) & " " & "得分:" & mark(temp)) 

  嘿嘿, 有意思吧, 其实在这个程序里面, 那个temp变量完全没有必要, 只是为了更清楚地说明问题. 因为当exit for以后ctr变量的值就不会改变, 储存的正好是对应数据在数组中的位置, 写这个temp变量是为了照顾到以后要学C++的朋友(C++可以在for语句里声明新变量, 只在这个for结构中有效, 所以到了外部就不能访问了). 也就是说可以简化成如下: