Sentencia goto de C ++
UNA goto instrucción proporciona un salto incondicional de goto a una instrucción etiquetada en la misma función.
NOTE - Uso de gotoEsta declaración se desaconseja en gran medida porque dificulta el seguimiento del flujo de control de un programa, lo que hace que el programa sea difícil de entender y difícil de modificar. Cualquier programa que use un goto se puede reescribir para que no necesite el goto.
Sintaxis
La sintaxis de una instrucción goto en C ++ es -
goto label;
..
.
label: statement;
Dónde labeles un identificador que identifica una declaración etiquetada. Una declaración etiquetada es cualquier declaración que esté precedida por un identificador seguido de dos puntos (:).
Diagrama de flujo
Ejemplo
#include <iostream>
using namespace std;
int main () {
// Local variable declaration:
int a = 10;
// do loop execution
LOOP:do {
if( a == 15) {
// skip the iteration.
a = a + 1;
goto LOOP;
}
cout << "value of a: " << a << endl;
a = a + 1;
}
while( a < 20 );
return 0;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19
Un buen uso de goto es salir de una rutina profundamente anidada. Por ejemplo, considere el siguiente fragmento de código:
for(...) {
for(...) {
while(...) {
if(...) goto stop;
.
.
.
}
}
}
stop:
cout << "Error in program.\n";
Eliminando el gotoobligaría a realizar una serie de pruebas adicionales. Un simplebreak La declaración no funcionaría aquí, porque solo haría que el programa saliera del bucle más interno.