Mudanças entre as edições de "MCO018703 2018 2 AULA05"
(→for) |
|||
(13 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 22: | Linha 22: | ||
Figura 1 - Controle de Fluxo com os comandos '''while''' e '''do while'''. | Figura 1 - Controle de Fluxo com os comandos '''while''' e '''do while'''. | ||
</center> | </center> | ||
+ | |||
+ | ===Exemplo=== | ||
+ | |||
+ | O exemplo abaixo mostra como o comando ''while'' permite implementar loops com controle no início. | ||
+ | |||
+ | <syntaxhighlight lang=c> | ||
+ | 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); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
==do...while== | ==do...while== | ||
Linha 35: | Linha 57: | ||
Aqui o "bloco de instruções" será executado primeiro e só então o parâmetro "expressão" é avaliado. Veja na Figura 1. | Aqui o "bloco de instruções" será executado primeiro e só então o parâmetro "expressão" é avaliado. Veja na Figura 1. | ||
+ | |||
+ | |||
+ | ===Exemplo=== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <syntaxhighlight lang=c> | ||
+ | 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); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
==for== | ==for== | ||
Linha 54: | Linha 100: | ||
</center> | </center> | ||
− | Exemplo | + | ===Exemplo 1=== |
+ | |||
+ | 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. | ||
<syntaxhighlight lang=c> | <syntaxhighlight lang=c> | ||
Linha 63: | Linha 111: | ||
void loop( ) | void loop( ) | ||
{ | { | ||
− | for (int i = 0; i < | + | for (int i=0; i < 10; i++) { |
− | Serial.println( | + | Serial.println(i); // imprime o valor de i |
delay(1000); | delay(1000); | ||
} | } | ||
Linha 70: | Linha 118: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ===Exemplo 2=== | |
+ | |||
+ | No código abaixo vemos um exemplo de dois loops aninhados. Enquanto '''i''' conta as linhas '''j''' conta as colunas. | ||
+ | |||
+ | <syntaxhighlight lang=c> | ||
+ | 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); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
=Referências= | =Referências= |
Edição atual tal como às 15h31min de 28 de agosto de 2018
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.
Figura 1 - Controle de Fluxo com os comandos while e do while.
Exemplo
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
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.
Figura 2 - Controle de Fluxo com o comando for.
Exemplo 1
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 2
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/