31
JavaScript (slides pertencentes à última aula)

(A07) LabMM3 - JavaScript - Estruturas de decisão

Embed Size (px)

Citation preview

Page 1: (A07) LabMM3 - JavaScript - Estruturas de decisão

JavaScript

(slides pertencentes à última aula)

Page 2: (A07) LabMM3 - JavaScript - Estruturas de decisão

Concatenação de strings

• Exemplos:

• var nome = “Ana” + “Lopes”; => “AnaLopes”

• var nome = “Ana” + “ Lopes”; => “Ana Lopes”

• var nome = “Ana” + “ “ + “Lopes”; => “Ana Lopes”

• Concatenação de strings com números:

• var t = “A minha idade: “ + 21; => “A minha idade: 21”

Page 3: (A07) LabMM3 - JavaScript - Estruturas de decisão

Conversão para número

• Soma de duas strings que podem ser interpretadas como número:

• var soma = “12” + “34”; => “1234”

• var resultado = “2” * “4”; => 8

• var legumes = 1 + 4 + “nabos”; => “5nabos”

• var legumes = “nabos” + 1 + 4; => “nabos14”

• Conversão para número

• parseInt(string); => número inteiro

• parseFloat(string); => número real

Page 4: (A07) LabMM3 - JavaScript - Estruturas de decisão

parseInt() e parseFloat()

• Exemplos:

• var soma = parseInt(“12”) + parseInt(“34”); => 46

• var numero = parseInt(“342abb”); => 342

• var numero = parseFloat(“3.02ppp”); => 3.02

• Nem sempre é possível converter para número:

• var num = parseInt(“teste”); => NaN (Not a Number)

• var num = parseInt(“a123”); => NaN

Page 5: (A07) LabMM3 - JavaScript - Estruturas de decisão

Tipos de dados: para mais detalhes

• Estudar Capítulo 3, até à pág. 40, do livro “Professional JavaScript for Web Developers”

• Exemplos mais complexos:

• var num3 = Number(“000011”); //11

• isNaN(10); //false

• if (string) -> true ou false?

• var num3 = parseInt(“10”, 10); //10 - parsed as decimal

• ...

Page 6: (A07) LabMM3 - JavaScript - Estruturas de decisão

Comentários

• Uma linha:

// Isto é um comentário de uma linha// Para segunda linha é necessário repetir código

• Várias linhas:

/*Isto é um comentário multi-linhaque só termina quando encontrar

*/

Page 7: (A07) LabMM3 - JavaScript - Estruturas de decisão

JavaScript: Decisões... decisões

Carlos SantosLabMM 3 - NTC - DeCA - UAAula 07, 03-10-2012

Page 8: (A07) LabMM3 - JavaScript - Estruturas de decisão

E o talvez?

Page 9: (A07) LabMM3 - JavaScript - Estruturas de decisão

Um computador...

• é capaz de tomar decisões com base na informação recolhida;

• as decisões são tomadas com base em condições;

• todas as condições têm que resultar num valor booleano: true ou false

• normalmente, as condições são construídas tendo por base operadores de comparação e operadores lógicos.

Page 10: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores de comparação

a < boperando esquerdo operando direito

operador

true false

“O valor de a é menor do que o valor de b?

Page 11: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores de comparação

Operador Significado

==

<

>

<=

>=

!=

igual

menor

maior

menor ou igual

maior ou igual

diferente (não igual)

Page 12: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores de comparação: exemplos

var a = 5;

var b = 10;

var c = 2;

• Qual o resultado das seguintes comparações?

a > b; //?

b < 50; //?

a >= 10 % 2; //?

a > b > c; //?

Page 13: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores de comparação: precedências

Operadores Precedência

<, >, <=, >=

==, !=

mais elevada

menos elevada

Page 14: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores de comparação: exemplos

var a = 5;

var b = 10;

var c = 2;

• Qual o resultado das seguintes comparações?

a > b == b < c; //?

Page 15: (A07) LabMM3 - JavaScript - Estruturas de decisão

Tantos iguais?

Operador Significado

=

==

===

atribuição

comparação: igual

comparação: igual com verificação de tipo de dados

Page 16: (A07) LabMM3 - JavaScript - Estruturas de decisão

Armazenar resultados de comparações

var age = prompt(“Enter age:”, “”);

var isOverSixty = parseInt(age) > 60;

document.write(“Older than 60: “ + isOverSixty);

//Older than 60: false|true

Exemplo retirado de “Beginning JavaScript”, pág. 54

Page 17: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores lógicos

Operador Significado

&&

||

!

AND (E)

OR (OU)

NOT (NEGAÇÃO)

Page 18: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores lógicos: como utilizar

• “A UA tem mais de 45 anos e menos de 50 anos?”

• 45 < idadeUA < 50; //?

• idadeUA > 45 && idadeUA < 50; //?

• NOTA: os operadores lógicos têm menor precedência do que os operadores de comparação.

Page 19: (A07) LabMM3 - JavaScript - Estruturas de decisão

Tabelas de verdade: AND

a b a && b

TRUE TRUE

FALSE TRUE

TRUE FALSE

FALSE FALSE

TRUE

FALSE

FALSE

FALSE

Page 20: (A07) LabMM3 - JavaScript - Estruturas de decisão

Tabelas de verdade: OR

a b a || b

TRUE TRUE

FALSE TRUE

TRUE FALSE

FALSE FALSE

TRUE

TRUE

TRUE

FALSE

Page 21: (A07) LabMM3 - JavaScript - Estruturas de decisão

Tabelas de verdade: NOT

a !a

TRUE

FALSE

FALSE

TRUE

Page 22: (A07) LabMM3 - JavaScript - Estruturas de decisão

Operadores lógicos: exemplos

var a = 5;

var b = 10;

var c = 2;

• Qual o resultado das seguintes comparações?

a > b && b < c; //?

a < b && b < c; //?

a < b || b < c; //?

a > b && b < c; //?

!(a > c); //?

a < b || b < c && a < c; //?

Page 23: (A07) LabMM3 - JavaScript - Estruturas de decisão

Como tomar decisões?

Se (condição)false

true

Page 24: (A07) LabMM3 - JavaScript - Estruturas de decisão

O que fazer? (1)

Se (condição)false

true

instruções;

Page 25: (A07) LabMM3 - JavaScript - Estruturas de decisão

O que fazer? (2)

Se (condição)false

true

instruções;

instruções;

Page 26: (A07) LabMM3 - JavaScript - Estruturas de decisão

O que fazer? (3)

Se (condição)false

true

instruções;

Se (condição2)

false

true

Page 27: (A07) LabMM3 - JavaScript - Estruturas de decisão

if ...

if (condição)

instrução;

if (condição) {

instruções;

}

Page 28: (A07) LabMM3 - JavaScript - Estruturas de decisão

if ... else

if (condição)

instrução1;

else

instrução2;

if (condição) {

instruções1;

} else {

instruções2;

}

Page 29: (A07) LabMM3 - JavaScript - Estruturas de decisão

if ... else if ... (múltiplos)

if (condição1) {

instruções1;

} else

if (condição2){

instruções2;

} else {

instruções3;

}

Page 30: (A07) LabMM3 - JavaScript - Estruturas de decisão

Como tomar decisões múltiplas?

valor1

variável

valorN

default

Page 31: (A07) LabMM3 - JavaScript - Estruturas de decisão

switch

switch (n) {

case 1:

  instruções1;

  break;

case 2:

  instruções2;

  break;

default:

  instruções se n é diferente de 1 e 2;

}