Você está na página 1de 2

Comandos de repetição 107

Relembrando o conceito de fluxogramas, é possível ter uma boa representação de


como os comandos do exemplo anterior são executados um a um pelo programa (Fi-
gura 5.18).
NÃO
while (a <= b) {
SIM
a = a + 1;
NÃO
if (a == 5):
SIM
continue;

printf(“%d \n”,a); }

Continuação do
programa

FI G URA 5 .18

O comando continue deverá sempre ser colocado dentro de um comando if ou else


que está dentro da repetição.

Isso ocorre porque o comando continue serve para ignorar a execução atual de
qualquer comando de repetição. Porém, esse comando de repetição só deve ser ig-
norado se ocorrer determinado resultado. Isso significa que existe uma condição a
ser testada com um comando if ou else antes de chamar o comando continue. Um
comando continue colocado dentro da repetição e fora de um comando if ou else
ignorará TODAS as execuções do comando de repetição, podendo levar até à criação
de um LAÇO INFINITO.

5.8 GOTO E LABEL


O comando goto é um salto condicional para um local especificado por uma pala-
vra-chave no código. A forma geral de um comando goto é:
L
L

Nessa sintaxe, o comando goto (do inglês go to, literalmente, “vá para”) muda o
fluxo do programa para um local previamente especificado pela expressão destino, em
que destino é uma palavra definida pelo programador. Esse local pode ser à frente ou
atrás no programa, mas deve ser dentro da mesma função.
O teorema da programação estruturada prova que a instrução goto não é necessária
para escrever programas; alguma combinação das três construções de programação (co-
mandos sequenciais, condicionais e de repetição) é suficiente para executar qualquer
cálculo. Além disso, o uso de goto pode deixar o programa muitas vezes ilegível.

E-book gerado especialmente para warlles carlos costa machado - wccmachado@gmail.com


108 L IN G UA G E M C CO M P L E TA E D E S C O M PL I C A DA

Exemplo: goto versus for


JRWR IRU

L F VWGLR K! L F VWGLR K!
L F VWGOLE K! L F VWGOLE K!
L PDLQ ^ L PDLQ ^
L L L L
LQLFLR I U L L L
LI L ^ SULQWI 1XPHUR G?Q L
SULQWI 1XPHUR G?Q L
L V\VWHP SDXVH
LQLFLR U U

V\VWHP SDXVH
U U

FI G URA 5 .19

Como se nota no exemplo anterior, o mesmo programa feito com o comando for
é muito mais fácil de entender do que feito com o comando goto.

Apesar de banido da prática de programação, o comando goto pode ser útil em


determinadas circunstâncias. Ex.: sair de dentro de laços aninhados.
L F VWGLR K!
L F VWGOLE K!
L PDLQ ^
L L M N
I U L L L
I U M M M
I U N N N
LI L M N
ILP

SULQWI 3RVLFDR > G G G ?Q L M N

ILP
SULQWI )LP GR SURJUDPD?Q

V\VWHP SDXVH
U U

No exemplo anterior, o comando goto é utilizado para sair de um aninhamento de


três comandos de repetição. O mesmo poderia ser feito com três comandos break, um
para cada comando de repetição. Como se pode ver, o comando goto é uma maneira
muito mais simples de realizar essa tarefa.

E-book gerado especialmente para warlles carlos costa machado - wccmachado@gmail.com