MCO018703 2018 1 AULA06

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Objetivo

  • Aprender sobre o comando de repetição while controlado por condição;
  • Saber usar o comando while e do while.

Introdução

Nesta sessão vamos estudar sobre o comando while e do while. Nesta estrutura de repetição, o bloco de instruções é executado no mínimo uma vez, já que a condição que controla o laço pode ser testada no início ou no final do comando. A diferença entre o comando while e o do while é justamente o local onde a condição que controla o laço é testada. No comando while a condição é testada antes do bloco de instruções, e caso a condição seja falsa a repetição não será executada. No do while o bloco de comandos é executado pelo menos uma vez de forma obrigatória, independente do resultado da expressão lógica. [1]

O comando while(): teste da repetição no começo

O comando while tem a seguinte forma geral
while (condição) declaração;

ou

while (condição)
{
  declaração1;
  declaração2;
}


Podemos ver que a estrutura while testa uma condição. Se esta for verdadeira
a declaração é executada e faz-se o teste novamente, e assim por diante.

O comando while permite implementar loops com controle no início:

#include <stdio.h>
main() 
{
  int contador;
  
  contador=0;
  while (contador<5) {  
     printf("valor do contador =  %d\n", contador);
     contador=contador+1;
  }
}


Variação do exemplo anterior:

#include <stdio.h>
main() 
{
  int contador;
 
  contador=0;
  while (contador<5) {  
	 printf("valor da expressão =  contador < 5 é %d\n", contador<5);  
         printf("valor do contador =  %d\n", contador);
         contador=contador+1;
  }
  printf("NO FINAL a expressão  contador < 5 é %d\n", contador<5);
}


Vamos ver a correspondência do comando while com um fluxograma:

Fluxograma C Comentário
Fluxo5.jpg
while(contador<5) {
   printf("Entre com x\n");
   scanf("%f",&x);
   soma=soma+x;
   contador = contador + 1;
}
O comando while() aplicado sobre um bloco de instruções.
Note que se for uma instrução simples,
as chaves podem ser omitidas.

NOTE que no exemplo anterior o contador inicialmente DEVE conter um valor válido.

Comando do while: controle do loop no final

O comando do while tem a seguinte forma geral
do {
   declaração1;
   declaração2;
} while (condição);

Nesta variação o comando do while() permite a repetição de uma ou mais instruções, com controle do loop no final.
Isto permite que o bloco seja executado pelo menos uma vez.

#include <stdio.h>
main() 
{
  int contador;
  
  contador=0;
  do {  
     printf("valor do contador =  %d\n", contador);
     contador=contador+1;
  } while (contador<5);
}


Fluxograma C Comentário
FluxoDoWhile-Eraldo.jpg
contador = 0;
do {
        scanf("%d",&x);
        soma=soma+x;
        if (soma>150) 
           y=z+x;
        contador++;
} while(contador<5);
Note que instruções while e if são tratadas como instruções normais

que podem ser aninhadas normalmente em outros comandos.

Loop Infinito

É possível implementar loops infinitos com qualquer uma das instruções acima.

Exemplo com comando while:

main()
{
   while(1) {
        /* Este bloco se executará infinitamente */
   }
}


Exercícios

  1. Elabore um programa que lê um número inteiro e imprime todos os números pares entre 0 e este número.
  2. Elabore um programa que lê um número inteiro e imprime todos os números impares entre 1 e este número.
  3. Elabore um programa que lê um número inteiros relativos a quantos elementos que computar da sequecia fibonacci, em que o segundo elemento é sempre a soma dos dos primeiros, por exemplo: (1+0=1, 1+1=2, 2+1=3, 2+3=5, 3+5=8, =5+8=13, 8+13=21 e assim por diante). Lembre que os dois primeiros elementos considerados são 1).


Referências

[1] http://linguagemc.com.br/comando-do-while/



Icone voltar.png Icone menu.png Icone prox.png