Ferramentas do usuário

Ferramentas do site


goto

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.


goto [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1
Linha 1: Linha 1:
 +====== Comando goto ======
  
 +Sintaxe:
 +<code c>
 +bloco de comandos;
 +...
 +goto saida;
 +...
 +saida: comandos
 +...
 +</code>
 +
 +----
 +
 +
 +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:
 +
 +<code c>
 +/* 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;
 +}
 +</code>
 +
 + --- //[[marcos@laureano.eti.br|Marcos Laureano]] 2008/05/13 16:34//