Comando goto

Sintaxe:

bloco de comandos;
...
goto saida;
...
saida: comandos
...

O comando goto realiza o desvio da execução para o comando que possuir o label indicado. Apesar de existir este comando, todas as boas técnicas de programação dizem que seu uso deve ser evitado.

Ele deve ser usado somente em processamento de exceção, desviando para uma área específica caso ocorra algum erro grave na execução de algum comando.

Veja o exemplo:

/* programa goto.c */
#include <stdio.h>
int main (void)
{
   int iValor_a;
   int iValor_b;
 
   while(1)
   {
      printf ("Valores:");
      scanf ("%d %d", &iValor_a, &iValor_b);
      if (iValor_a == 0)
      {
         goto fim;
      }
 
      if (iValor_b == 0) /* Caso seja informado 0 para iValor_b o programa é desviado para o label erro através do comando goto */
      {
         goto erro;
      }
      printf ("Divisao : %d\n", iValor_a / iValor_b);
   }
 
erro: /* executando somente se for informado valor 0 para iValor_b */
   printf ("Divisao por zero\n");
 
fim: /* esta linha é executada sempre, pois todos os comandos após um label goto serão interpretados.
        Mesmo que faça parte de outro label goto */
   printf ("Fim da execucao do programa\n");
 
   return 0;
}

Marcos Laureano 2008/05/13 16:34

goto.txt · Última modificação: 2008/05/13 16:40 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0