Testes Lógicos de Repetição do while e for
O mundo está constantemente a evoluir: desde o mais pequeno inseto à espécie Humana. Dentro das palavras que mais ouvimos atualmente, incluímos “evolução”, “mudança”, “futuro”.
A tecnologia tem revolucionado o mundo das mais diversas formas: do mais simples aparelho para medir o tempo ao mais complexo acelerador de partículas. Se quer entrar no mundo da tecnologia e deixar a sua marca, pode começar aqui.
[field name=iframe]
Visualize este vídeo no YouTube
Teste Lógico do while
Os testes lógicos de repetição são, como já deve saber, extremamente úteis em inúmeras situações pois permitem-nos reutilizar código. Recentemente abordámos o teste lógico de repetição while e hoje iremos abordar um outro semelhante: o do while. A sua sintaxe é a seguinte:
do
{
//código a ser repetido
} while (condição);
Ao contrário do que acontece com o teste lógico while, no do while, o código é executado primeiro e só de seguida é que se confirma a veracidade da condição. Se a condição for verdadeira, então o código é executado mais uma vez, caso não o seja, já não será executado.
Este facto faz com que o que código contido dentro do teste lógico seja executado pelo menos uma vez. Veja então o seguinte exemplo de uma simples calculadora com o código documentado.
#include
int main()
{
/*
* Variável que irá determinar se executamos
* o código da calculadora de novo ou não.
*/
int calcular;
do {
char operacao;
float num1,
num2;
//Limpeza do buffer
fflush(stdin);
__fpurge(stdin);
printf(“Escolha a operação [+ – * / ]: “);
scanf(“%c”,&operacao);
printf(“Insira o primeiro número: “);
scanf(“%f”,&num1);
printf(“Insira o segundo número: “);
scanf(“%f”,&num2);
switch( operacao )
{
case ‘+’:
printf(“%.2f + %.2f = %.2f\n”, num1, num2, num1 + num2);
break;
case ‘-‘:
printf(“%.2f – %.2f = %.2f\n”, num1, num2, num1 – num2);
break;
case ‘*’:
printf(“%.2f * %.2f = %.2f\n”, num1, num2, num1 * num2);
break;
case ‘/’:
printf(“%.2f / %.2f = %.2f\n”, num1, num2, num1 / num2);
break;
default:
printf(“Você digitou uma operação invalida.\n”);
break;
}
printf(“Insira 0 para sair ou 1 \n”);
scanf(“%d”, &calcular);
} while (calcular);
/*
* Se “calcular” for diferente de 0 (falso), o código
* da calculadora será executado novamente.
*
* Para terminar o código basta então digitar 0 quando
* for pedido.
*/
return 0;
}
Teste Lógico for
Outro teste lógico de repetição que é muito importante é o for e é muito útil quando, por exemplo, precisamos de inicializar uma variável a que deve ser incrementado um número. Veja a sintaxe:
for(inicio_do_loop ; condição ; termino_de_cada_iteração)
{
//código a ser executado
}
Vamos agora ver um pequeno exemplo comparando a sintaxe com um teste lógico while. O código seguinte utiliza o último loop mencionado para imprimir os números de 0 a 100:
#include
int main()
{
int num;
num = 0;
while (num <= 100) {
printf(“%d\n”, num);
num++;
}
return 0;
}
Abaixo pode encontrar o seu equivalente com o teste de repetição for:
#include
int main()
{
int num;
for(num = 0; num <=100; num++) {
printf(“%d\n”, num);
}
return 0;
}
Apesar de parecer apenas uma pequena redução de duas linhas, com códigos mais complexos poderão ser poupadas mais linhas e este loop também melhora a legibilidade do código.
Ressalto também que os interruptores de fluxo break e continue funcionam com este teste lógico de repetição.
Exercícios
1 – Crie um pequeno menu de opções com, no mínimo, cinco opções à sua escolha sendo uma delas para terminar o programa e as restantes para efetuar qualquer coisa que deseje. O menu deverá continuar a aparecer até o utilizador pedir para fechar.
2 – Recorrendo ao teste lógico for, imprima todos os números divisíveis por 4, 10 e 25 entre 1 e 1000.
Mais uma vez, gostávamos de saber a sua opinião. Caso tenha alguma dúvida, pode sempre utilizar os comentários para colocar a questão. Caso o faça, pedimos que utilize a keyword [DUVIDA] no início do seu comentário.






Deixe um comentário