Mudanças entre as edições de "MCO018703 2021 1 AULA05"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '=Objetivo= *Aprender sobre o comando de repetição ''while'' controlado por condição; *Saber usar o comando ''while'' e ''do while''. =Funções para Controle de Fluxo -...')
 
Linha 1: Linha 1:
=Objetivo=
+
 
 +
 
 +
=Funções para Controle de Fluxo - Repetição=
 +
 
 +
;Objetivo:
  
 
*Aprender sobre o comando de repetição ''while'' controlado por condição;
 
*Aprender sobre o comando de repetição ''while'' controlado por condição;
 
*Saber usar o comando ''while'' e ''do while''.
 
*Saber usar o comando ''while'' e ''do while''.
  
=Funções para Controle de Fluxo - Repetição=
 
  
 
==while( )==
 
==while( )==

Edição das 16h30min de 17 de maio de 2021


Funções para Controle de Fluxo - Repetição

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


while( )

Uma das operações mais frequentes que os programas executam é repetir um grupo de instruções até que uma condição inicialmente verdadeira se torne falsa. É para isso que serve o comando while. A sua sintaxe é a seguinte:

while (expressão) {
   bloco de instruções;     
}

O bloco de instruções será executado enquanto o parâmetro expressão for verdadeiro. A Figura 1 mostra o comando while e do while.

Fig039 MCO018703.jpg

Figura 1 - Controle de Fluxo com os comandos while e do while.

Exemplo 1

O exemplo abaixo mostra como o comando while permite implementar loops com controle no início.

int contador;
void setup( ) 
{
   Serial.begin(9600); // inicializa a porta serial 
}
void loop( ) 
{
  contador=0;
  while (contador<5) {  
     Serial.print("valor do contador: "); // imprime o texto entre ""
     Serial.println(contador); // imprime o valor do contador
     contador=contador+1;
     delay(500);
  }
}

do...while

Para que o bloco de instruções seja executado ao menos uma vez, ele é deslocado para a entrada da caixa de decisões, antes do teste de validade:

do {
   bloco de instruções;                                
}
while (expressão);

Aqui o "bloco de instruções" será executado primeiro e só então o parâmetro "expressão" é avaliado. Veja na Figura 1.


Exemplo 2

Nesta variação do 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.

int contador;
void setup( ) 
{
   Serial.begin(9600); // inicializa a porta serial 
}
void loop( ) 
{
  contador=0;
  do {  
     Serial.print("valor do contador: "); // imprime o texto entre ""
     Serial.println(contador); // imprime o valor do contador
     contador=contador+1;
     delay(500); 
  } while (contador<5);
}

for

Inserindo-se no loop do comando while um contador que registre cada execução do bloco de instruções cria-se o comando for. Esse contador deve ter uma variável de controle que deve ser previamente inicializada com um tipo e um valor. A sua sintaxe é a seguinte:

for (variável;expressão;incremento) {
   bloco de instruções; 
}

A variável é inicializada normalmente com 0 ou 1; o parâmetro expressão deve conter o valor máximo (ou mínimo) que o contador deve alcançar; e incremento é o valor que será incrementado (ou decrementado) da variável cada vez que o bloco de instruções é executado. Observe que cada parâmetro entre parênteses é separado por ponto e vírgula.

Fig040 MCO018703.jpg

Figura 2 - Controle de Fluxo com o comando for.

Exemplo 3

No código abaixo a variável de controle i do contador criada e inicializada com 0; o contador é testado e se o valor nele acumulado for menor que 10 seu valor é enviado para o Terminal, e depois de 1 segundo, o contador é incrementado e seu novo valor é testado novamente.

void setup( ) 
{
   Serial.begin(9600); // inicializa a porta serial 
}
void loop( ) 
{
   for (int i=0; i < 10; i++) {   
     Serial.println(i); // imprime o valor de i 
     delay(1000);    
   }
}
Exemplo 4

No código abaixo vemos um exemplo de dois loops aninhados. Enquanto i conta as linhas j conta as colunas.

int i,j; // i e j são variáveis inteiras

void setup( ) 
{
   Serial.begin(9600); // inicializa a porta serial 
}
void loop( ) 
{
  for (i=0;i<13;i++) {
        for (j=0;j<=i;j++) {
          Serial.print('*'); // imprime um asterisco 
          delay(100);    
        }
        Serial.println(); // pula uma linha
        delay(50);
   }
}

Referências

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



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