Ir ao conteúdo

Posts recomendados

Postado

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

 

 

 

Postado

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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!