Objective-C和Sprite Kit游戏开发从入门到精通
上QQ阅读APP看书,第一时间看更新

3.5 goto语句与标签

如果大家学习过C语句,也许知道在goto语句的争议是很大的。不过,在一些特殊情况下,goto语句和标签的使用却是效率最高的,比如,在需要跳出嵌套的循环语句结构时。如下面的代码。

    int lockedZone = 0;
    while (YES) {
        for (int i=1; i <= 10; i++) {
            // 可疑情况的出现很随机
            if (arc4random() % 2 == 1) {
                NSLog(@"警告:一号雷达在%i号区域发现可疑目标", i);
                lockedZone = i;
                goto RadarOneStop;
            }
        }
    }
    RadarOneStop:
    NSLog(@"一号雷达锁定目标,停止扫描");

在这个代码中,当一号雷达发现了可疑目标以后,则锁定此区域,并停止工作,当然,在前面的示例中,我们也可以看到,实际会有二号雷达来继续扫描其他区域。

在Objective-C中,我们通过“<标签名称>:”的格式来定义一个标签,然后,可以使用“goto <标签名称>; ”语句跳转到此标签的位置。