Sentencias de salto (Programación)
|
Sentencias de salto (programación). Permiten transferir el control del programa de forma incondicional. Existen cuatro de estas sentencias: break, continue, goto, return.
Sentencia break
La sentencia break se usa para salir de forma incondicional de los bucles do, for y while, así como de las sentencias switch de multi-dicisión. Hay que tener en cuenta que en el caso de bucles anidados, break hace salir del bucle interior.
Sintaxis
break;
Ejemplo
switch (c) { case 0: cout << "Falso" << endl; break; default: cout << "Cierto" << endl; }
Al contrario que otros lenguajes, C++ no dispone de la opción break (n) para definir el número de niveles que se saltarán hacia fuera en el caso de bucles anidados.
Sentencia continue
La sentencia continue se utiliza en los bucles for, while y do...while. En los primeros el control salta al final del bucle, con lo que el contador se incrementa y comienza otra comprobación. En los while, el control pasa inmediatamente a la condición de control.
Sintaxis:
continue;
Descripción
continue suele utilizarse cuando la lógica del bucle es complicada, de forma que establecer una nueva condición y un nuevo nivel de indentación puede volver esta demasiado profunda.
Ejemplo
void main () { for (i = 0; i < 20; i++) { if (array[i] == 0) continue; array[i] = 1/array[i]; } }
Sentencia goto
goto es una sentencia de salto incondicional dentro del ámbito de una función.
Sintaxis
goto <etiqueta> ;
Descripción
La sentencia goto permite transferir el control de ejecución a la etiqueta especificada por el identificador <etiqueta> (las etiquetas terminan siempre en dos puntos :). Recordar que la etiqueta debe estar en la misma función que el goto (el ámbito de las etiquetas se limita a la función en que son declaradas).
Comentario
Aunque en tiempos fue muy popular y los programas estaban llenos de "gotos" con saltos cuyos destinos eran la mayoría de las veces etiquetas numéricas (el número de línea de la instrucción a la que se quería saltar), podríamos afirmar sin rubor que actualmente se trata de la sentencia maldita. Ningún programador medianamente "elegante" empleará jamás un goto. Incluso existen lenguajes que simplemente no disponen de esta instrucción tan "hortera". C++ y otros lenguajes disponen de esta sentencia aunque se considera que debe ser evitada. Sobre todo porque la secuencia lógica del código resulta difícil de entender, aunque a veces es de utilidad para salir de bucles anidados en los que el break no es suficiente. Por ejemplo en condiciones de error.
Ejemplo
void foo() { Again: // esta es la etiqueta ... goto Again; // Ok. salto a la etiqueta ... } void faa() { ... goto Final: // Ok. salto a la etiqueta ... Final: goto Again; // Error!! destino en otra función ... }
Sentencia return
La sentencia return devuelve el control de ejecución desde la función que contiene el return a la rutina que la invocó; opcionalmente puede devolver un valor.
Sintaxis
return [ <expresion> ] ;
Descripción
La sentencia return devuelve el control de ejecución desde la función que contiene el return a la rutina que la invocó. Además, opcionalmente puede devolver un valor (contenido en <expresion>). <expresion> es opcional, así como el paréntesis que se suele colocar, aunque no es necesario. Si no se indica <expresion> la función no devuelve nada.