Download - LabMM3 - Aula teórica 07
![Page 1: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/1.jpg)
![Page 2: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/2.jpg)
JavaScript: Sempre a repetir a mesma coisa :-/
Carlos SantosLabMM 3 - NTC - DeCA - UAAula 07, 06-10-2011
![Page 3: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/3.jpg)
Como “simplificar” trabalhos repetitivos?
![Page 4: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/4.jpg)
Como repetir?
• 2 tipos de estruturas de repetição:
• for
• repetição baseada num número de vezes pré-determinado
• while
• repetição até que uma determinada condição seja verdadeira
![Page 5: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/5.jpg)
Estrutura de repetição: for
for ( cont = valorInicial; cont <= valorFinal; cont++){
// código a executar}
inicialização da variável de ciclo
incremento da variável de ciclo
condição de teste do ciclo
![Page 6: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/6.jpg)
Estrutura de repetição: for
var cont;for ( cont = valorInicial; cont <= valorFinal; cont++){
// código a executar}
a variável contadora já foi declarada anteriormente?
for (var cont = valorInicial; cont <= valorFinal; cont++){
// código a executar}
![Page 7: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/7.jpg)
Observações [idiotas?]
• A variável contadora do ciclo pode ter um nome qualquer
• “cont” é só um exemplo!
• O incremento da variável contadora pode ser realizado com base em qualquer valor inteiro (positivo ou negativo)
• ++ é um valor muito utilizado... mas apenas isso!
• O valor da variável contadora não deve ser alterado dentro do bloco de instruções
• é possível... mas é bom saber muito bem o que se está a fazer :)
![Page 8: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/8.jpg)
for: como funciona?
1. Executar a parte de inicialização do ciclo.
2. Verificar a condição de teste.
i. Se verdadeira, continuar;
ii. Se não, terminar o ciclo.
3. Executar o código existente no bloco a seguir ao ciclo.
4. Executar a parte de incremento do ciclo.
5. Repetir os passos 2 a 4 até que a condição de teste seja falsa.
![Page 9: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/9.jpg)
for: como funciona em fluxograma
2. Condição de teste
false
true
3. bloco de código;
1. inicialização ciclo;
4. incremento de ciclo;
5...
![Page 10: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/10.jpg)
for: Exemplo (1)
• Qual o resultado?
var i;
for (i = 0; i <= 5; i++)
{
document.write("O número é " + i);
document.write("<br />");
}
![Page 11: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/11.jpg)
for: Exemplo (2)
• Qual o resultado?
var x = 0;
for (x = 10; x >= 0; x = x - 2)
{
document.write("O número é " + x);
document.write("<br />");
}
![Page 12: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/12.jpg)
for: Exemplo (3)
• Qual o resultado?
var num = prompt(“Número?”, “”);
// Aqui falta uma rotina de validação
var i = 0;
for (i = 1; i <= 10; i++)
{
document.write(num + “ * " + i + “ = “ + num*i);
document.write("<br />");
}
![Page 13: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/13.jpg)
for...in e for each...in
• estruturas de repetição para utilizar com objetos (arrays na maioria dos casos)
• são rotinas que simplificam o acesso aos diferentes elementos de um objecto;
• tudo o que permitem fazer também pode ser conseguido com um ciclo for “normal”;
• voltaremos mais tarde a estas estruturas de repetição!
![Page 14: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/14.jpg)
Estrutura de repetição: while
while ( condição ){// código a executar
}
enquanto a condição for verdadeira o ciclo continua a condição pode ser
qualquer expressão que tenha como resultado um
valor booleano
o código a executar deve conter alguma instrução que possa ter impacto no valor
da condição
![Page 15: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/15.jpg)
while: como funciona em fluxograma
1. Condição de teste
false
true
2. bloco de código;
![Page 16: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/16.jpg)
while: Exemplo (1)
• Qual o resultado?
var i = 0;
while (i <= 5)
{
document.write("O número é " + i);
document.write("<br />");
}
![Page 17: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/17.jpg)
while: Exemplo (2)
• Qual o resultado?
var i = 0;
while (i <= 5)
{
document.write("O número é " + i);
document.write("<br />");
i++;
}
![Page 18: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/18.jpg)
Estrutura de repetição: do...while
do{// código a executar
}while ( condição )
enquanto a condição for verdadeira o ciclo continua
o código é sempre executado pelo menos
uma vez
![Page 19: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/19.jpg)
do..while: como funciona em fluxograma
2. Condição de teste
false
true
1. bloco de código;
![Page 20: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/20.jpg)
do...while: Exemplo (1)
• Qual o resultado?
var i = 0;
do
{
document.write("O número é " + i);
document.write("<br />");
i++;
}
while (i <= 5);
![Page 21: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/21.jpg)
do...while: Exemplo (2)
• Qual o resultado?
var i = 0;
do
{
i++;
document.write("O número é " + i);
document.write("<br />");
}
while (i <= 5);
![Page 22: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/22.jpg)
do...while: Exemplo (3)
• Qual o resultado?
var userAge=””;
do{
userAge = prompt(“Please enter your age”,””)
}
while (isNaN(userAge) == true);
![Page 23: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/23.jpg)
do...while: Exemplo (4)
• Qual o resultado?
var userAge=””;
do{
userAge = prompt(“Please enter your age”,””)
}
while (isNaN(userAge));
![Page 24: LabMM3 - Aula teórica 07](https://reader033.vdocuments.pub/reader033/viewer/2022042817/559d269b1a28abe8518b45e6/html5/thumbnails/24.jpg)
ciclos dentro de ciclos (nested)
• Qual o resultado?
var linha = 0, coluna = 0;document.writeln("<table>");for (linha=1; linha<=10; linha++){document.writeln("<tr>");for (coluna=1; coluna<=10; coluna++){document.writeln("<td>"+linha*coluna+"</td>");
}document.writeln("</tr>");
}document.writeln("</table>");