Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como colocar um "if" entre dois valores?

Gostaria de saber como fazer um "if" funcionar entre dois valores. No exemplo do meu programa gostaria de passar a mensagem que o usuário está em recuperação com uma média entre 4 e 6.9

<meta charset="UTF-8">
<script>
function mostra(texto){
    document.write(texto)
}

function pulaLinha(){
    document.write("<br><br>")
}

function traço(){
    document.write("<hr>")

}

document.write("<h1>" +  "Aréa do estudante"  + "</h1>");
traço();

document.write("<h3>"+ "Calcule sua média aqui" + "</h3>");



//provas possuem peso 2
function calculaMedia(teste, prova, prova2){
    return ((teste + (prova*2) + (prova2*2))/5) 
}

//dados
var testeInformado = parseInt(prompt("Insira a nota do teste"));    
var provaInformada = parseInt(prompt("Insira a nota da primeira prova"));
var prova2Informada = parseInt(prompt("Insira a nota da segunda prova"));
var media = calculaMedia(testeInformado, provaInformada, prova2Informada);


mostra("Sua média é " + "<strong>" + media + "</strong>");
traço();
traço();

if (media > 6.9){
mostra("<strong>" + "Você está aprovado(a)." + "</strong>");
}

if (4.1 < media < 6.9){
mostra("<strong>" + "Você está de recuperação." + "</strong>");
}

if (media < 4.1 ){
mostra("<strong>" + "Você está reprovado(a)." + "</strong>");
}



</script>
3 respostas

if (4.1 < media && media < 6.9) {

solução!

Olá Claudio,

O código mais correto para estas comparações é:

if (media > 6.9){
    mostra("<strong>" + "Você está aprovado(a)." + "</strong>");
} else if (media > 4.1){
    mostra("<strong>" + "Você está de recuperação." + "</strong>");
} else {
    mostra("<strong>" + "Você está reprovado(a)." + "</strong>");
}

Explicando o código, no 1º teste if (media > 6.9), a mensagem "Você está aprovado(a)" só será mostrada caso o valor da média seja maior que 6.9 e terminará o "if", caso contrario ele irá para o próximo teste "else if (media > 4.1)", que também só mostrará a mensagem caso o valor da média seja maior que 4.1. Se este também não for atendido, significa que o valor da média é menor ou igual a 4.1, mostrando assim a mensagem "Você está reprovado(a)"

Caso não tenha ficado claro, me avise.

Espero ter ajudado. Abraços!

Olá Cláudio, Muito cuidado com o tratamento dos intervalos. Pelo que estou entendendo o aluno estaria aprovado com notas a partir de 7 e reprovado com notas inferiores a 4. Se for isso, a estrutura deve ser:

if (media >= 7){
    mostra("<strong>" + "Você está aprovado(a)." + "</strong>");
} else if (media >= 4){
    mostra("<strong>" + "Você está de recuperação." + "</strong>");
} else {
    mostra("<strong>" + "Você está reprovado(a)." + "</strong>");
}

Observe que desta forma o aluno que teve média 6.99 vai para a recuperação. Ok??