Blog en Blogger Blog en BuscoAfiliados Bookmarks en Delicious Perfil el Facebook Perfil en Twitter Fotos en Flickr Página en MySpace Canal en YouTube Perfil en Google Perfil en Google
Búsqueda personalizada
Curso de lenguaje C
 Principal
 Inicio
 Libros
 Librerías
 Bibliotecas
 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
 Perfiles
 Taller de ideas 
  
 Otros Proyectos
 Blog Carlos Pes
 Grupo Google
 Fotografías
 Proyecto CP
 Recetas cocina
 Blog en BA 
  
 Sitios Amigos
 Enlaces
  
 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
 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
Directorio de Empresas
Búsqueda personalizada
 Más Webs Interesantes
© 2006-2010 CarlosPes.com