在For..Next循环中跳转到下一个的方法?

时间:2012-10-27 03:59:57

标签: vb.net quickbasic

我在QuickBasic中进行逆向工程,我有这样的代码:

FOR i = star TO fin
   IF a < 1 THEN 
    CALL clrbot
    COLOR 15
    PRINT force$(side); " army in "; city$(armyloc(i)); " is CUT OFF !";
    TICK turbo!
    GOTO alone
   END IF
   size = size + 1
   max = 11: IF LEN(armyname$(i)) < 11 THEN max = LEN(armyname$(i))
   mtx$(size) = LEFT$(armyname$(i), max)
   array(size) = i
alone:
NEXT i

我想摆脱行标签(单独),而是做类似的事情:

   IF a < 1 THEN 
     CALL clrbot
    COLOR 15
    PRINT force$(side); " army in "; city$(armyloc(i)); " is CUT OFF !";
    TICK turbo!
    NEXT i
   END IF

1 个答案:

答案 0 :(得分:1)

你可以用其他代替GOTO:

For i = star To Fin
    If a < 1 Then
        ' Do something
    Else
        ' Do Something else
    End If
Next

这将遵循相同的逻辑 - Else取代GOTO alone语句。

在原始代码(QuickBASIC)中,如果输入If块,则忽略GOTO alone语句之后的所有内容。

如果未输入If块(即&gt; = 1),则执行If块之后的所有内容。

VB.NET代码中的Else语句将产生相同的行为。如果&lt; 1,将执行第一个块,忽略Else块,循环将前进到i的下一个增量。

如果&gt; = 1,那么Else块将被执行,然后循环将前进到i的下一个增量。

以上假设QuickBASIC中的标签与DOS批处理文件中的标签类似。