JavaScript: Decisões... decisões
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 06, 29-09-2011
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

                           operador



    operando esquerdo                   operando direito

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



                        true      false
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        TRUE

   FALSE       TRUE       FALSE

   TRUE       FALSE       FALSE

   FALSE      FALSE       FALSE
Tabelas de verdade: OR


     a           b       a || b

   TRUE        TRUE       TRUE

   FALSE       TRUE       TRUE

   TRUE        FALSE      TRUE

   FALSE       FALSE     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?




                                 false
                 Se (condição)




                        true
O que fazer? (1)




                                   false
                   Se (condição)




                          true


                   instruções;
O que fazer? (2)




                             false
             Se (condição)




                    true      instruções;


              instruções;
O que fazer? (3)




                          false
          Se (condição)




                               Se        false
                   true
                           (condição2)

           instruções;

                                  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?




                                        default
                    variável

        valor1


                               valorN
switch

 switch (n) {
     case 1:
       instruções1;
       break;
     case 2:
       instruções2;
       break;
     default:
       instruções se n é diferente de 1 e 2;
 }

LabMM3 - Aula teórica 06

  • 1.
    JavaScript: Decisões... decisões CarlosSantos LabMM 3 - NTC - DeCA - UA Aula 06, 29-09-2011
  • 2.
  • 3.
    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.
  • 4.
    Operadores de comparação operador operando esquerdo operando direito a < b “O valor de a é menor do que o valor de b? true false
  • 5.
    Operadores de comparação Operador Significado == igual < menor > maior <= menor ou igual >= maior ou igual != diferente (não igual)
  • 6.
    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; //?
  • 7.
    Operadores de comparação:precedências Operadores Precedência <, >, <=, >= mais elevada ==, != menos elevada
  • 8.
    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; //?
  • 9.
    Tantos iguais? Operador Significado = atribuição == comparação: igual comparação: igual com verificação de tipo === de dados
  • 10.
    Armazenar resultados decomparaçõ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
  • 11.
    Operadores lógicos Operador Significado && AND (E) || OR (OU) ! NOT (NEGAÇÃO)
  • 12.
    Operadores lógicos: comoutilizar • “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.
  • 13.
    Tabelas de verdade:AND a b a && b TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
  • 14.
    Tabelas de verdade:OR a b a || b TRUE TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE
  • 15.
    Tabelas de verdade:NOT a !a TRUE FALSE FALSE TRUE
  • 16.
    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; //?
  • 17.
    Como tomar decisões? false Se (condição) true
  • 18.
    O que fazer?(1) false Se (condição) true instruções;
  • 19.
    O que fazer?(2) false Se (condição) true instruções; instruções;
  • 20.
    O que fazer?(3) false Se (condição) Se false true (condição2) instruções; true
  • 21.
    if ... if(condição) instrução; if (condição) { instruções; }
  • 22.
    if ... else if (condição) instrução1; else instrução2; if (condição) { instruções1; } else { instruções2; }
  • 23.
    if ... elseif ... (múltiplos) if (condição1) { instruções1; } else if (condição2){ instruções2; } else { instruções3; }
  • 24.
    Como tomar decisõesmúltiplas? default variável valor1 valorN
  • 25.
    switch switch (n){ case 1:   instruções1;   break; case 2:   instruções2;   break; default:   instruções se n é diferente de 1 e 2; }