goto

Description

Transfers program flow to a labeled point in the program

Syntax

label: // other code goto label; // sends program flow to the label

Or

goto label; // sends program flow to the label // other code label:

Parameter Values

  • label: the lable name

Example Code

Example 1

void setup() { Serial.begin(9600); Serial.println("SETUP - TOP"); goto BOTTOM; Serial.println("SETUP - MIDDLE"); BOTTOM: Serial.println("SETUP - BOTTOM"); } void loop() { }

The result on Serial Monitor:

COM6
Send
SETUP - TOP SETUP - BOTTOM
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

As we can see, the text "SETUP - MIDDLE" is not printed.

Example 2

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 ...

※ NOTES AND WARNINGS:

The use of goto is discouraged in C++ programming, and some authors of C++ programming books claim that the goto statement is never necessary, but used judiciously, it can simplify certain programs. The reason that many programmers frown upon the use of goto is that with the unrestrained use of goto statements, it is easy to create a program with undefined program flow, which can never be debugged.

With that said, there are instances where a goto statement can come in handy, and simplify coding. One of these situations is to break out of deeply nested for loops, or if logic blocks, on a certain condition.

See Also

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, DIYables.

※ OUR MESSAGES