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

Preview:

Citation preview

JavaScript

(slides pertencentes à última aula)

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”

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

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

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

• ...

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

*/

JavaScript: Decisões... decisões

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

E o talvez?

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.

Operadores de comparação

a < boperando esquerdo operando direito

operador

true false

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

Operadores de comparação

Operador Significado

==

<

>

<=

>=

!=

igual

menor

maior

menor ou igual

maior ou igual

diferente (não igual)

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; //?

Operadores de comparação: precedências

Operadores Precedência

<, >, <=, >=

==, !=

mais elevada

menos elevada

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; //?

Tantos iguais?

Operador Significado

=

==

===

atribuição

comparação: igual

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

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

Operadores lógicos

Operador Significado

&&

||

!

AND (E)

OR (OU)

NOT (NEGAÇÃ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.

Tabelas de verdade: AND

a b a && b

TRUE TRUE

FALSE TRUE

TRUE FALSE

FALSE FALSE

TRUE

FALSE

FALSE

FALSE

Tabelas de verdade: OR

a b a || b

TRUE TRUE

FALSE TRUE

TRUE FALSE

FALSE FALSE

TRUE

TRUE

TRUE

FALSE

Tabelas de verdade: NOT

a !a

TRUE

FALSE

FALSE

TRUE

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; //?

Como tomar decisões?

Se (condição)false

true

O que fazer? (1)

Se (condição)false

true

instruções;

O que fazer? (2)

Se (condição)false

true

instruções;

instruções;

O que fazer? (3)

Se (condição)false

true

instruções;

Se (condição2)

false

true

if ...

if (condição)

instrução;

if (condição) {

instruções;

}

if ... else

if (condição)

instrução1;

else

instrução2;

if (condição) {

instruções1;

} else {

instruções2;

}

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

if (condição1) {

instruções1;

} else

if (condição2){

instruções2;

} else {

instruções3;

}

Como tomar decisões múltiplas?

valor1

variável

valorN

default

switch

switch (n) {

case 1:

  instruções1;

  break;

case 2:

  instruções2;

  break;

default:

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

}