不用标签重写基本代码



我有一些使用标签的代码,下面的一个示例:

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

您可以看到,它使用标签持有来跳出它。例如,我通常可能会这样做:

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中,然后嵌套一半。关于解决此问题的方法的任何建议?

作为马克·霍尔(Mark Hall)在上面的评论中所指出的,在这些情况下使用出色的出口。卸下goto,然后用出口替换为语句。

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

相关内容

  • 没有找到相关文章

最新更新