AnteriorPosterior

3.5. Sentencia goto

  Curso: Fundamentos de programación en C, por Nacho Cabanes

3.5. Sentencia goto

El lenguaje C también permite la orden “goto”, para hacer saltos incondicionales. Su uso indisciplinado está muy mal visto, porque puede ayudar a hacer programas llenos de saltos, difíciles de seguir. Pero en casos concretos puede ser muy útil, por ejemplo, para salir de un bucle muy anidado (un “for” dentro de otro “for” que a su vez está dentro de otro “for”: en este caso, “break” sólo saldría del “for” más interno).

El formato de “goto” es

goto donde;

y la posición de salto se indica con su nombre seguido de dos puntos (:)

donde:

como en el siguiente ejemplo:

/*---------------------------*/
/*  Ejemplo en C nº 35:      */
/*  C035.C                   */
/*                           */
/*  "for" y "goto"           */
/*                           */
/*  Curso de C,              */
/*    Nacho Cabanes          */
/*---------------------------*/
 
#include <stdio.h>
 
int main()
{
  int i, j;
 
  for (i=0; i<=5; i++)
    for (j=0; j<=20; j+=2)
    {
      if ((i==1) && (j>=7)) goto salida;
      printf("i vale %d y j vale %d.\n", i, j);
    }
  salida:
    printf("Fin del programa\n");
 
  return 0;
}
 

El resultado de este programa es:

i vale 0 y j vale 0.
i vale 0 y j vale 2.
i vale 0 y j vale 4.
i vale 0 y j vale 6.
i vale 0 y j vale 8.
i vale 0 y j vale 10.
i vale 0 y j vale 12.
i vale 0 y j vale 14.
i vale 0 y j vale 16.
i vale 0 y j vale 18.
i vale 0 y j vale 20.
i vale 1 y j vale 0.
i vale 1 y j vale 2.
i vale 1 y j vale 4.
i vale 1 y j vale 6.
Fin del programa

Vemos que cuando i=1 y j>=7, se sale de los dos “for”.

Actualizado el: 23-07-2014 15:19

AnteriorPosterior