2012-10-27 22 views
0

我在QuickBasic逆向工程,我有這樣的代碼:如何跳轉到下一個我在For..Next Loop?

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 
+0

可能重複的[VB.NET - 如何移動到下一個項目For Each Loop?](http://stackoverflow.com/questions/829689/vb-net-how-to-move-to-next- item-a-for-each-loop) –

+1

如果Else應該這樣做。 – Tim

+1

您可以使用繼續以跳到循環的下一個迭代。 –

回答

1

你可以用一個人換掉的GOTO:

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

這將遵循同樣的邏輯 - 在Else採取的地方210聲明。

在原始代碼(QuickBASIC)中,如果輸入If塊,則會忽略在GOTO alone之後的所有語句。

如果未輸入If塊(即a> = 1),則執行If塊後的所有內容。

VB.NET代碼中的Else語句會產生相同的行爲。如果一個< 1,第一個塊將被執行並且Else塊將被忽略,循環將前進到下一個增量i

如果a> = 1,則將執行Else塊,然後循環將前進到下一個增量i

上面假設QuickBASIC中的標籤與DOS批處理文件中的標籤相似。

相關問題