Mudanças entre as edições de "MCO18703 2017 2 AULA05"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '==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) { ...')
 
Linha 116: Linha 116:
 
</syntaxhighlight>|| Note que instruções ''while'' e ''if'' são tratadas como instruções normais<br>
 
</syntaxhighlight>|| Note que instruções ''while'' e ''if'' são tratadas como instruções normais<br>
 
que podem ser aninhadas normalmente em outros comandos.
 
que podem ser aninhadas normalmente em outros comandos.
|}
 
 
==Comando ''for()'' ==
 
 
O comando ''for()'' permite uma forma mais elaborada de ''loop'', com controle no início do bloco de repetição.
 
 
;Sua forma geral é
 
 
for(inicialização;condição;incremento) declaração;
 
 
;ou
 
 
for(inicialização;condição;incremento){
 
  declaração1;
 
  declaração2;
 
}
 
 
 
 
[[arquivo:ComandoFor.gif|thumb|right| Estrutura de Repetição]]
 
 
<syntaxhighlight lang=c>
 
#include <stdio.h>
 
 
main()
 
{
 
  int i;
 
 
 
  for (i=0;i<10;i=i+1)
 
      printf("i =%d\n",i);
 
}
 
</syntaxhighlight>
 
 
 
{| border="1" cellpadding="5" cellspacing="0"
 
! style="background: #FFD700;" | Fluxograma
 
! style="background: #FFD700;" | C
 
! style="background: #FFD700;" | Comentário
 
|-
 
| |[[imagem:FluxogramaComandoFor-Eraldo.jpg|300px]]
 
||<syntaxhighlight lang=c>
 
for(i=0; i<10; i++) {
 
  printf("Laço de número %d\n", i);
 
  if (i==5)
 
      printf("Este é o laço 5\n");
 
}
 
</syntaxhighlight>|| Observe que a expressão ''i=0'' é executada SEMPRE e uma única VEZ, <br>no início do comando.
 
A expressão ''i<10'' é o controle do ''loop''. Se FALSA o ''loop'' é encerrado. <br>Ela é executada após a expressão
 
de inicialização e, na sequência,  <br>no início de cada ''loop''. <br>A expressão i++ é executada no final de cada ''loop''.
 
 
|}
 
|}
  

Edição das 15h22min de 24 de outubro de 2017

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 */
   }
}





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