4.7. Reescreva o seguinte trecho de um programa, utilizando o laço while:
for (i=1; i
if (i==10)
continue;
else
printf(“%d\n”,i);
Passo 1
Vamos colocar a mão na massa!
Beleza, antes de tudo vamos entender o que esse programa está fazendo. Um bom exercício é você tentar imaginar qual seria a saída desse programa.
O que acontece é o seguinte: a gente tem um valor inicial , a gente tem uma condição para que seja executada a instrução , a instrução que diz que se então seguimos para próxima iteração, se não escreva na tela, e então seguimos para pós-instrução .
A saída desse programa será:
O que acontece é o seguinte, ele começa a rodar para , e para todo menor ou igual à analisa se é igual a 10, se não for, ele escreve na tela o número, e se for então ele parte para próxima iteração, ou seja, vai para pós-instrução, e adiciona um passo sem escrever o número na tela.
Passo 2
Agora vamos escrever isso como um laço while. A primeira coisa que vamos fazer é determinar o inicio, então temos que começar com:
Assim temos definido que o primeiro valor de é . Agora vamos entrar no laço while. A condição para instrução é que seja menor ou igual que . Então temos:
Agora vamos escrever a instrução, mas temos uma condição aqui, se for igual à
, então não escrevemos, só continuamos. Essa condição tem a seguinte estrutura:
Repare que cada iteração vai analisar o valor de , e quando ele for igual a não vai escrever nada.
É interessante reparar nessa linha:
Como o laço while não segue para a pós-instrução depois de um continue, temos que atualizar a variável antes desse comando. O trecho do programa vai ficar assim:
Primeiro determinamos que , então, enquanto for menor que , a cada iteração adicionamos ao valor de e verificamos se ele é igual a ou não, se for nós usamos o continue, se não for escrevemos na tela o seu valor.
Resposta