La palabra clave goto
está soportada en C++, dado que
existe en C. El uso de goto
a menudo es considerado
como un estilo de programación pobre, y la mayor parte de las
veces lo es. Siempre que se utilice goto
, se debe
revisar bien el código para ver si hay alguna otra manera de
hacerlo. En raras ocasiones, goto
puede resolver un
problema que no puede ser resuelto de otra manera, pero, aún
así, se debe considerar cuidadosamente. A continuación aparece
un ejemplo que puede ser un candidato plausible:
//: C03:gotoKeyword.cpp // The infamous goto is supported in C++ #include <iostream> using namespace std; int main() { long val = 0; for(int i = 1; i < 1000; i++) { for(int j = 1; j < 100; j += 10) { val = i * j; if(val > 47000) goto bottom; // Break would only go to the outer 'for' } } bottom: // A label cout << val << endl; } ///:~
Listado 3.8. C03/gotoKeyword.cpp
La alternativa sería dar valor a un booleano que sea evaluado en
el for
externo, y luego hacer un break
desde
el for
interno. De todos modos, si hay demasiados
niveles de for
o while
esto puede llegar a ser
pesado.