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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 100: Linha 100:
 
</center>
 
</center>
  
===Exemplo 1===
+
;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.
 
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.
Linha 118: Linha 118:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===Exemplo 2===
+
;Exemplo 4
  
 
No código abaixo vemos um exemplo de dois loops aninhados. Enquanto '''i''' conta as linhas '''j''' conta as colunas.
 
No código abaixo vemos um exemplo de dois loops aninhados. Enquanto '''i''' conta as linhas '''j''' conta as colunas.

Edição atual tal como às 16h45min de 19 de março de 2020

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 - Repetição

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