回 帖 发 新 帖 刷新版面

主题:请教vb编程(循环结构)

程序功能:
有4个变量,每个变量都是在同一给定集合中取,这四个变量的运算a/b*c/d的结果与一固定值的差<=0.0001.变量不能取相同值.
我编的程序,好象进入死循环了,程序到这就动弹不了了.
请高人指点指点!!!

Dim x As Variant
x = Array(20, 23, 24, 25, 26, 30, 32, 33, 34, 35, 37, 40, 41, 43, 45, 46, 47, 48, 50, 52, 53, 55, 57, 58, 59, 60, 61, 62, 65, 67, 70, 71, 73, 75, 79, 80, 83, 85, 89, 90, 92, 95, 97, 98, 100)
For i = 0 To 44
For j = 0 To 44
For k = 0 To 44
For l = 0 To 44
If x(i) / x(j) * x(k) / x(l) - 9 * Sin(Dialog.Text5) / Dialog.Combo6.Text >= -0.0001 And x(i) / x(j) * x(k) / x(l) - 9 * Sin(Dialog.Text5) / Dialog.Combo6.Text <= 0.0001 And x(i) <> Text9 And x(i) <> Text10 And x(i) <> Text11 And x(i) <> Text12 And x(j) <> Text9 And x(j) <> Text10 And x(j) <> Text11 And x(j) <> Text12 And x(k) <> Text9 And x(k) <> Text10 And x(k) <> Text11 And x(k) <> Text12 And x(l) <> Text9 And x(l) <> Text10 And x(l) <> Text11 And x(l) <> Text12 And x(i) <> x(j) And x(i) <> x(k) And x(i) <> x(l) And x(j) <> x(k) And x(j) <> x(l) And x(k) <> x(l) Then
Exit For
Text19 = x(i)
Text20 = x(j)
Text21 = x(k)
Text22 = x(l)
End If
Next l, k, j, i

回复列表 (共17个回复)

11 楼

你想过在vb 里面做45*45*45*45 (=4100625) 次循环,循环里面还有复杂计算式+控件处理要多少时间吗??
在完全只有循环(不做任何事情),大概需要0.3秒
但是你的循环里有4个控件要处理,就是不计算任何东西,至少需要20分钟,你觉得程序是“死”了吗?

老大徒伤悲,你又想误导人了哈!!

12 楼

呵呵,我还没注意到你的最里层循环那句 If x(i) / .....里面还处理了20次控件,哇,那个时间简直不可想象.................................恩,至少比你发邮件花的时间长!

13 楼

没有你说的那么夸张,guoyong_cy!
这个问题,我已经运行过的,你不要想当然!
主要是它的文本框写入内容的语句组因为没有符合运行条件被跳过,他看不到期待的内容出现,才误认为死机的!
别告诉我20分钟,我的机器运行瞬间结束
也别告诉我,是因为我的机器配置高:2.4Ghz、512M的配置!

不要想当然,任何事情,调查后再说。
一件事情总有不同的方面,你不能要求所有的人都和你站在同一位置!

14 楼

瞬间......绝对不可能,你以为我没试过哦!
你把代码写全,发给我看看......

15 楼

我上面5楼就是!如果你真要执行时间的话,可以在加两行代码测定一下看!

16 楼

guoyong_cy  你能下载吗?

17 楼

后面多一个空格,复制后去掉,粘贴到ie浏览器的地址栏。

我来回复

您尚未登录,请登录后再回复。点此登录或注册