Diferenças

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

Link para esta página de comparações

goto [d/mY H:i] (atual)
laureano criada
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//
goto.txt · Última modificação: d/mY H:i por laureano
CC Attribution-Noncommercial-Share Alike 4.0 International
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