User Tools

Site Tools


arduino:control_structures:goto

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

arduino:control_structures:goto [2013/02/15 20:45]
arduino:control_structures:goto [2024/02/16 01:04] (current)
Line 1: Line 1:
 +====== goto   ======
 +
 +Transfers program flow to a labeled point in the program
 +
 +====Syntax   ====
 +
 +label: 
 +
 +goto label;  // sends program flow to the label
 +
 +====Tip   ====
 +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.
 +
 +====Example   ====
 +<code arduino>
 +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:
 +</code>
 +
 +
 +
 +
 +
 +
 +Source: arduino.cc
  

on the occasion of the current invasion of Russia in Ukraine

Russian Stop this War

Impressum Datenschutz