【问题标题】:Rewriting Basic Code without Label重写没有标签的基本代码
【发布时间】:2012-10-20 03:43:16
【问题描述】:

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

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

如您所见,它使用标签 holdup 跳出它所在的 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 中的一半。有关解决此问题的方法的任何建议?

【问题讨论】:

标签: vb6 basic qbasic quickbasic


【解决方案1】:

正如 Mark Hall 在上面的 cmets 中指出的,在这些情况下使用 Exit For 效果很好。删除 GOTO 并替换为 Exit For 语句。

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      猜你喜欢
      • 2015-02-01
      • 2010-11-23
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2023-03-20
      • 2011-08-11
      相关资源
      最近更新 更多