Ir ao conteúdo
  • Cadastre-se

VisualG Como usar a função && no JAVASCRIPT


Posts recomendados

Olá galera, boa noite, seguinte, estou fazendo um exercicio da faculdade e eles pedem:

Dados dois numeros inteiros e distintos entre si , imprima "AMBOS PARES","AMBOS IMPARES" ou "DEMAIS CASOS"...

Eu preciso usar o & mas não sei como fazer funcionar quando eu testo sempre dá errado, se puderem me ajudar , basicamente eu preciso fazer uma função que

ao usuario digitar dois numeros, se for dois numeros pares dará o alert : "AMBOS PARES ", se for dois numeros impares dara o alert :"AMBOS IMPARES", sem mais delongas , esse é o meu código:

 

<

function testejoao(){

 

var num1 

var num2

var teste01

var teste02

 

num1=prompt("digite um numero");

alert(num1)

num2= prompt ("digite outro numero");

alert(num2)
 

teste01=num1%2&&num2%2

teste02=num1%2&&num2%2

 

if(teste01=0){

    alert("Ambos são pares")

}

 

if(teste02=1){

    alert("Ambos são impares")

 

}else

    alert("Demais Casos")

}

>

 

 

PS: Eu segui mais ou menos o que o prof do curso falou, ele está ensinando Algoritmo então na aula ele não usa uma linguagem especifica mas no caso eu estou querendo usar o JAVASCRIPT, é isso !! espero que possam me ajudar :D

 

 

 

Link para o comentário
Compartilhar em outros sites

Primeiramente vamos corrgir um erro de sintaxe nos if's:

if(teste01 === 0){
    alert("Ambos são pares")
}
else if(teste02 === 1){
    alert("Ambos são impares")
} 
else
    alert("Demais Casos")
} 

 

Depois de fazer essa correção, vamos ver como a aplicação se comporta.

Primeiro caso:

Spoiler

wRPW3Wj.png

Nesse caso a aplicação funcinou perfeitamente, maravilha, certo? Vamos testar o proximo caso!

 

Segundo caso:

Spoiler

jNBxS4Z.png

Nesse caso a aplicação também funcinou perfeitamente! Vamos testar o proximo caso!

 

Terceiro caso:

Spoiler

eP6tguI.png

Nesse caso a aplicação não funcinou como o esperado. (Mostrei dois casos.)

 

Recomendo ler isso: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND

a1 = true  && true       	// t && t retorna true
a2 = true  && false      	// t && f retorna false
a3 = false && true       	// f && t retorna false
a4 = false && (3 == 4)   	// f && f retorna false
a5 = 'Gato' && 'Cachorro'   // t && t retorna "Cachorro"
a6 = false && 'Gato'      	// f && t retorna false
a7 = true && 'Gato'      	// f && t retorna "Gato"
a8 = 'Gato' && false     	// t && f retorna false
a9 = '' && false      		// f && f retorna ""
a10 = false && ''         	// f && f retorna false

Agora que você entendeu que o operador && só "verifica" a segunda condição quando a primeira é verdadeira vamos continuar...

====== PRESTE BASTANTE ATENÇÃO NO a2 E a3 E GRAVE ELES  ======

 

O problema está no teste01, vejamos:

 

Se num1%2 for igual 0 (par) então teste01 vai receber 0, quebrando o código porque ele n checa a segunda situação. (SITUAÇÃO MOSTRADA NO a3)

Se num1%2 for igual 1(impar) e num2%2 for igual a 0(par) então teste01 vai receber 0, quebrando o código. (SITUAÇÃO MOSTRADA NO a2)

 

Por isso tanto num1 = 1 e num2 = 2 ou num1 = 2 e num2 = 1 vai atribuir 0 em teste01 quebrando o código.

 

Como resolver?

Para isso você precisa entender também o operador ||(OR):

Recomendo ler isso: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

o1 = true  || true       // t || t retorna true
o2 = false || true       // f || t retorna true
o3 = true  || false      // t || f retorna true
o4 = false || (3 == 4)   // f || f retorna false
o5 = 'Cat' || 'Dog'      // t || t retorna "Cat"
o6 = false || 'Cat'      // f || t retorna "Cat"
o7 = 'Cat' || false      // t || f retorna "Cat"
o8 = ''    || false      // f || f retorna false
o9 = false || ''         // f || f retorna ""
o10 = false || varObject // f || object retorna varObject

Agora que você entendeu que o operador || só "verifica" a segunda condição quando a primeira é falsa vamos para solução:

====== PRESTE BASTANTE ATENÇÃO NO o2 E o3 E GRAVE ELES  ======

 

Se num1%2 for igual 0 (par) ou num2%2 for igual a 1(impar) então teste01 vai receber 1. (SITUAÇÃO MOSTRADA NO o2)

Se num1%2 for igual 1(impar) então teste01 vai receber 1. (SITUAÇÃO MOSTRADA NO o3)

 

Solução:

function testejoao(){
    const num1 = prompt("Digite um número");

    const num2 = prompt("Digite outro número");

    const teste01 = num1%2 || num2%2

    const teste02 = num1%2 && num2%2

    if(teste01 === 0){
        alert("Ambos são pares")
    }
    else if(teste02 === 1){
        alert("Ambos são impares")
    }
    else {
        alert("Demais Casos")
    } 
}

 

Executando:

Spoiler

GU6geHS.png

 

Dica: Evite usar var, use const ou let.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...