VB 把一个循环缩写

来源:百度知道 编辑:UC知道 时间:2024/05/16 03:32:56
dim a as long
dim b as long
a=int(rnd*100+1)
select case a
case 1
b=12532
case 2
b=52412
case 3
b=65425
case 4
b=854256
.......
......
......
case 100
b=89542
end select
这个怎么缩写b的值没有规律这样一直写太长了,写到天黑了 大大帮忙
因为不知道有没有可能实现 先给20分 答的好在加分

你里面这个b值是随机的吗?

实现用个数组,如果是随机的,先随机生成数组。不是随机的就先创建这个数组,用 Select 的值确定取数组的第几个元素即可

你先把b的值按照顺序存在一个数组中,以a为数组下标读出就可以实现了,连循环都不用。

dim a as long
dim b as long

a=int(rnd*100+1)

d(1)=12532;
d(2)=52412;
...

d(100)=89542;

b=d(a);

'将 100 个数据存入数组 S() 中
Dim a As Long, b As Long, S(1 To 100) As Long
'----给数组 S() 赋值的例子,你可以根据你的需要用别的代码替换
Randomize
For I = 1 To 100
S(I) = 10000 * Rnd
Next
'----
a = Int(Rnd * 100 + 1)
b = S(a)
MsgBox "b=" & b

看来你的意思是要实现这样一个功能,随机产生从1到100的一个整数a,根据这个数值a来取另外一个数b,但a和b之间并没有关系,且b的值也是没有规律的。

如果我说的错,那么你的代码这样写确实是有问题,太长了。

建议你把b的值放在一个.txt的文本文件里,每个值之间用空格或者逗号分开,程序开始后一次性读出这个文件,再使用split函数将这100个值存到一个数组里,最后根据随机产生的a的值来求对应这个数组里的值。

这就是使用文件文件的原理,硬邦邦的数据写在程序里是不合理的方式。如果你需要代码,我可以把代码帖上来。

Dim a As Long
Dim b As Long
'把b要对应的数写在集合里面,注意集合中元素的个数要与a生成的最大数一致,否则会出错
b_array = Array