2

labelを使用するコードがいくつかあります。その例を以下に示します。

SUB occupy (x)
occupied(x) = 0
FOR i = 1 TO 40
IF armyloc(i) = x THEN 
    occupied(x) = i
    GOTO holdup
ELSE
END IF
NEXT i
holdup:
END SUB

ご覧のとおり、ラベルホールドアップを使用してFor..Nextループからジャンプします。これをより適切で適切なコードに変更する良い方法がわかりませんか?たとえば、私は通常次のようなことをするかもしれません:

SUB occupy (x)
occupied(x) = 0
FOR i = 1 TO 40
IF armyloc(i) = x THEN 
    occupied(x) = i
    GOTO holdup
ELSE
       NEXT i
END IF
END SUB

しかし、これは問題を引き起こします-FOR..NEXTループは、その半分のIF..THEN内にネストされています。この問題を解決する方法について何か提案はありますか?

4

2 に答える 2

1

上記のコメントでMarkHallが指摘したように、ExitForを使用するとこれらの状況でうまく機能します。GOTOを削除し、ExitForステートメントに置き換えます。

于 2012-10-22T15:10:03.393 に答える
0
SUB occupy (x)
occupied(x) = 0
FOR i = 1 TO 40
    IF armyloc(i) = x THEN occupied(x) = i: Exit For
NEXT i
END SUB
于 2012-11-03T08:25:34.163 に答える