goto

令程式的执行流程跳到一个被标记的位置。

语法


label:
goto label; // 将程式的执行流程跳到 label 处

提醒

一般来说在C语言的教科书中,使用goto被认为是一个非常糟糕的事情,甚至被认为永远不该出现,但是如果运用得宜,则可以让某些程式变得简洁;而goto在许多的程式设计人员间不受欢迎的原因,是因为如果在goto的使用上不够拘谨,很容易产生非预期的程式执行流程,甚至导致程式无法进行除错。

基于以上所述,以一个多层巢状回圈为例子,用if判断当某个条件成立后就必须跳出整个巢状回圈,在此使用goto可以让编写程式码更为便利、简单。

范例

for(byte r = 0; r < 255; r++){
    for(byte g = 255; g > -1; g--){
        for(byte b = 0; b < 255; b++){
            if (analogRead(0) > 250){ goto bailout;}
            // more statements ... 
        }
    }
}
bailout:

语法参考主页面

本页由热血青年 LBU 译自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.