説明
プログラム内のラベル付けされたポイントにフローを移動させます。
構文
label: goto label; // sends program flow to the label
プログラム例
for (byte r = 0; r < 255; r++) { for (byte g = 255; g > 0; g--) { for (byte b = 0; b < 255; b++) { if (analogRead(0) > 250) { goto bailout; } // more statements ... } } } bailout: // more statements ...
注意点と警告
C言語では、gotoの使用は推奨されていません。C言語の本の著者の中には、goto文は決して必要ではないが、適切に使用することで、ある種のプログラムを単純化することができると主張する人もいます。多くのプログラマーがgotoの使用を嫌う理由は、goto文を無制限に使用すると、プログラムの流れが定義されていないプログラムを簡単に作成することができます。結果、そのプログラムをデバッグすることができないからです。
とはいえ、goto文が便利で、コーディングを簡単にしてくれる場合もあります。その一つが、深く入れ子になったforループやifロジックブロックから、特定の条件で抜け出す場合です。