0

我在 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
4

1 回答 1

1

您可以将 GOTO 替换为 Else:

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

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

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

如果If没有进入该块(即 a >= 1),则If执行该块之后的所有内容。

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

如果 a >= 1,则该Else块将被执行,然后循环将前进到 的下一个增量i

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

于 2012-10-27T04:19:33.703 回答