【发布时间】:2017-06-12 05:06:47
【问题描述】:
我需要在我的 VBScript 中创建一个条件 For...Next 循环,并且它需要有多个(这里我需要五个)可以控制循环行为的子条件。
这是我当前的代码:
TOTAL_1 = 1
TOTAL_2 = 2
TOTAL_3 = 3
TOTAL_4 = 4
TOTAL_5 = 5 '<< Those are values of sub "To" conditions
TOTAL = TOTAL_1 + TOTAL_2 + TOTAL_3 + TOTAL_4 + TOTAL_5 '<< Total value of main "To" condition
For I = 1 To TOTAL
If I = 1 Then WScript.Echo "Currently in Set 1" '<< For sub condition TOTAL_1
If I = 2 Then WScript.Echo "Currently in Set 2"
If I = 3 Then WScript.Echo "Currently in Set 2" '<< For sub condition TOTAL_2
If I = 4 Then WScript.Echo "Currently in Set 3"
If I = 5 Then WScript.Echo "Currently in Set 3"
If I = 6 Then WScript.Echo "Currently in Set 3" '<< For sub condition TOTAL_3
If I = 7 Then WScript.Echo "Currently in Set 4"
If I = 8 Then WScript.Echo "Currently in Set 4"
If I = 9 Then WScript.Echo "Currently in Set 4"
If I = 10 Then WScript.Echo "Currently in Set 4" '<< For sub condition TOTAL_4
If I = 11 Then WScript.Echo "Currently in Set 5"
If I = 12 Then WScript.Echo "Currently in Set 5"
If I = 13 Then WScript.Echo "Currently in Set 5"
If I = 14 Then WScript.Echo "Currently in Set 5"
If I = 15 Then WScript.Echo "Currently in Set 5" '<< For sub condition TOTAL_5
Next
虽然上面的代码有效,但每次更改子条件的值时,我都需要更改 For Loop,例如
TOTAL_1 = 20, TOTAL_4 = 8
这个 For 循环应该执行 15 次在变量 TOTAL 中赋值,但即使 I 的值在循环中发生变化,它应该检查当前 I 所属的子条件是什么,然后做同样的工作(这里显示相同的消息)直到I 的值属于下一个子条件。
如果我将子条件 TOTAL_1 的值更改为 5,我需要在此 For 循环中进行以下更改:
If I = 1 Then WScript.Echo "Currently in Set 1"
If I = 2 Then WScript.Echo "Currently in Set 1"
If I = 3 Then WScript.Echo "Currently in Set 1"
If I = 4 Then WScript.Echo "Currently in Set 1"
If I = 5 Then WScript.Echo "Currently in Set 1" '<< For changed sub condition TOTAL_1
将来我还需要添加更多子条件,例如TOTAL_6、TOTAL_7...。
如何在不每次都更改 for 循环的情况下做到这一点,以及如何从该代码中删除任意行,使其更小?
【问题讨论】:
-
检查“选择案例”,因为它可能有助于为您缩短代码。请参阅此链接底部附近的示例:docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/…
-
@PaulT。这非常有用,别介意在 VBScript 中存在循环。