(A09) LabMM3 - JavaScript - Estruturas de repetição

23
JavaScript: Sempre a repetir o mesmo? :-/ Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 09, 17-10-2012

Transcript of (A09) LabMM3 - JavaScript - Estruturas de repetição

Page 1: (A09) LabMM3 - JavaScript - Estruturas de repetição

JavaScript: Sempre a repetir o mesmo? :-/

Carlos SantosLabMM 3 - NTC - DeCA - UAAula 09, 17-10-2012

Page 2: (A09) LabMM3 - JavaScript - Estruturas de repetição

Como “simplificar” trabalhos repetitivos?

Page 3: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 4: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 5: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 6: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 7: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 de instruções.

4. Executar a parte de incremento do ciclo.

5. Repetir os passos 2 a 4, até a condição de teste ser falsa.

Page 8: (A09) LabMM3 - JavaScript - Estruturas de repetição

for: como funciona em fluxograma

2. Condição de teste

false

true

3. bloco de código;

1. inicialização ciclo;

4. incremento de variável de ciclo;

5...

Page 9: (A09) LabMM3 - JavaScript - Estruturas de repetição

for: Exemplo (1)

• Qual o resultado?

var i;

for (i = 0; i <= 5; i++)

{

document.write("O número é " + i);

document.write("<br />");

}

Page 10: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 11: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 12: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 13: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 14: (A09) LabMM3 - JavaScript - Estruturas de repetição

while: como funciona em fluxograma

1. Condição de teste

false

true

2. bloco de código;

Page 15: (A09) LabMM3 - JavaScript - Estruturas de repetição

while: Exemplo (1)

• Qual o resultado?

var i = 0;

while (i <= 5)

{

document.write("O número é " + i);

document.write("<br />");

}

Page 16: (A09) LabMM3 - JavaScript - Estruturas de repetição

while: Exemplo (2)

• Qual o resultado?

var i = 0;

while (i <= 5)

{

document.write("O número é " + i);

document.write("<br />");

i++;

}

Page 17: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 18: (A09) LabMM3 - JavaScript - Estruturas de repetição

do..while: como funciona em fluxograma

2. Condição de teste

false

true

1. bloco de código;

Page 19: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 20: (A09) LabMM3 - JavaScript - Estruturas de repetição

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 21: (A09) LabMM3 - JavaScript - Estruturas de repetição

do...while: Exemplo (3)

• Qual o resultado?

var userAge=””;

do{

userAge = prompt(“Please enter your age”,””)

}

while (isNaN(userAge) == true);

Page 22: (A09) LabMM3 - JavaScript - Estruturas de repetição

do...while: Exemplo (4)

• Qual o resultado?

var userAge=””;

do{

userAge = prompt(“Please enter your age”,””)

}

while (isNaN(userAge));

Page 23: (A09) LabMM3 - JavaScript - Estruturas de repetição

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>");