Búsqueda personalizada
Curso de lenguaje C
 Principal
 Inicio
 Libros
 Librerías
 Mapa Web
 
 Recursos
 Artículos
 Cursos
 Ejercicios
 Guías de uso
 Mini Diccionario 
  
 Sintaxis
 ANSI C
 Ordinogramas
 Pascal
 Pseudocódigo 
  
 Acerca de
 Carlos Pes
 Colaboradores
 Taller de ideas 
  
 Sitios Amigos
 Blogs,...
 Informática,...
 Directorios,...
 Empresas,...
 Gente,...
 Ocio,...
 Tutoriales,...
  
 Mis Blogs en
 Blogger
 BuscoAfiliados 
  
 Contenidos > 4.3 Instrucción goto
4.3 Instrucción goto
En lenguaje C, para escribir una instrucción de salto goto (ir_a), se utiliza la sintaxis:


   goto <nombre_de_la_etiqueta>
 

La instrucción de salto goto se puede usar en un programa
, para transferir incondicionalmente el control del mismo a la primera instrucción después de una etiqueta, o dicho de otra forma, al ejecutar una instrucción goto, el control del programa se transfiere (salta) a la primera instrucción después de una etiqueta. Una etiqueta se define mediante su nombre (identificador) seguido del carácter dos puntos (:).

Ejemplo: En el siguiente programa se utiliza la instrucción goto para resolver el mismo problema que el del ejemplo 1 del apartado 4.1 Instrucción break:

#include <stdio.h>

int main()
{

   int n, a;

   a = 0;
   do
   {
     printf( "Introduzca un numero entero: " );
     scanf( "%d", &n );

     if ( n == 0 )
     {
      printf( "ERROR: El cero no tiene opuesto.\n" );
      goto etiqueta_1;
      /* En el caso de que n sea un cero,
         el control de programa salta a la
         primera instrucción después de
         etiqueta_1. */
     }
     printf( "El opuesto es: %d\n", -n );
     a += n;
   } while ( n >= -10 && n <= 10 );


   etiqueta_1:

   printf( "Suma: %d", a );

   return 0;
}


Los resultados por pantalla de este programa son idénticos a los de los programas de los ejemplos 1 y 2 del apartado 4.1 Instrucción break.

En pantalla:


   Introduzca un número entero: -4

   El opuesto es: 4


   Introduzca un número entero: 12

   El opuesto es: -12

   Introduzca un número entero: 0

   ERROR: El cero no tiene opuesto.

   Suma: 8

 

La traza del programa es:

 
Secuencia:
 
Acción (instrucción):
Valor de:
a n
1 a = 0 0 ?
Inicio de la iteración 1.
2 printf( "Introduzca un número entero:" ) 0 ?
3 scanf( "%d",n ) 0 -4
4 (Comprobar si == 0) 0 -4
La condición de la alternativa simple (if) es falsa.
5 printf( "El opuesto es: %d\n", -n ) 0 -4
6 a += n -4 -4
Fin de la iteración 1.
7 (Comprobar si >= -10 && n <= 10) -4 -4
La condición del bucle (do...while) es verdadera.
Inicio de la iteración 2.
8 printf( "Introduzca un número entero:" ) -4 -4
9 scanf( "%d",n ) -4 12
10 (Comprobar si == 0) -4 12
La condición de la alternativa simple (if) es falsa.
11 printf( "El opuesto es: %d\n", -n ) -4 12
12 a += n 8 12
Fin de la iteración 2.
13 (Comprobar si >= -10 && n <= 10) 8 12
La condición del bucle (do...while) es verdadera.
Inicio de la iteración 3.
14 printf( "Introduzca un número entero:" ) 8 12
15 scanf( "%d",n ) 8 0
16 (Comprobar si == 0) 8 0
La condición de la alternativa simple (if) es verdadera.
17 printf( "ERROR: El cero no tiene opuesto." ) 8 0
18 goto etiqueta_1 8 0
El bucle se interrumpe en la 3ª iteración.
El control del programa se transfiere (salta) a la
 primera instrucción después de 
etiqueta_1.
19 printf( "Suma: %d", a ) 8 0

Figura. Traza del ejemplo 1.

Normalmente, al igual que ocurre con las instrucciones break y continue, cuando en un algoritmo se utiliza una instrucción goto, la ejecución de ésta también se condiciona.

 Más información
Texto extraído del libro DOMINE LA PROGRAMACIÓN EN LENGUAJE C.
 Contenidos > Apartado siguiente
4.4 Instrucción return (próximamente)
 A destacar
Cursos Ejercicios Libros Enlaces Recomendados
Curso Diseño de Algoritmos
Curso Informática Básica
Curso Ingeniería del Software
Curso Marketing en Internet
Curso Lenguaje C
Curso Turbo Pascal
Curso Representación Datos
Ejercicios de Algoritmos
Ejercicios de Lenguaje C
Ejercicios de Ordinogramas
Ejercicios de Pascal
Empezar de cero a programar en lenguaje C
Domine la programación en lenguaje C
Empezar de cero a programar en Pascal
Tutoriales y Cursos
Gane dinero con su web
Comprar dominio
Programación Informática
100% Adsense
Búsqueda personalizada
 Más Webs Interesantes
© 2006-2009 CarlosPes.com