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 | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | O comando **'' | ||
+ | |||
+ | 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 < | ||
+ | int main (void) | ||
+ | { | ||
+ | int iValor_a; | ||
+ | int iValor_b; | ||
+ | |||
+ | | ||
+ | { | ||
+ | printf (" | ||
+ | scanf ("%d %d", & | ||
+ | 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 (" | ||
+ | } | ||
+ | |||
+ | erro: /* executando somente se for informado valor 0 para iValor_b */ | ||
+ | | ||
+ | |||
+ | 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 */ | ||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | --- // |