Вопрос

I have some code that uses label, an example of it is below:

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

As you can see, it uses the label holdup to jump out of the For..Next loop it is in. I don't know a good way to change this to be better/proper code? For example, I might usually do something like this:

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

But this creates a problem - the FOR..NEXT loop is now nested within an IF..THEN for half of it. Any suggestions on ways to resolve this issue?

Это было полезно?

Решение

As Mark Hall noted in the comments above, using Exit For works well in these situations. Remove the GOTO and replace with an Exit For statement.

Другие советы

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top