3
respostas

Procurar um numero entre dois números

Boa tarde

No JS, gostaria de criar um código para a seguinte situação.

ao digitar um numero no Alert, me devolver a informação, conforme exemplo abaixo:

se for entre 1 e 10, devolver A,

se for entre 11 e 20, devolver B,

se for entre 21 e 31, devolver C.

como ficaria a condicional?

3 respostas

Olá, Agnaldo! Tudo bom com você?

Nesse caso, você poderia fazer o seguinte código:

let numero = prompt('Digite um número entre 1 e 30');
if(numero <= 10){
 
    alert('O número digitado está na categoria A');

}
else if(numero > 10 && numero <= 20){
    
    alert('O número está na categoria B');

}
else{
    alert('O número digitado está na categoria C');
}
 

É importante usar o else if na segunda condição ao invés de um if normal porque, dessa forma, fazemos uma única verificação para as três condições. Caso não se enquadre na primeira condição (grupo A), fará um teste com a segunda (grupo B) e, caso não enquadre na segunda, ficará para a terceira (grupo C).

Se fizermos if, depois outro if, e depois o else, como no exemplo a seguir, vamos ter duas verificações.

let numero = prompt('Digite um número entre 1 e 30');
if(numero <= 10){
 
    alert('O número digitado está na categoria A');

}
if(numero > 10 && numero <= 20){
    
    alert('O número está na categoria B');

}
else{
    alert('O número digitado está na categoria C');
}

Isso porque vai fazer o teste para a primeira condição (grupo A) e, caso não se enquadre nesse condição, nada ocorre. Depois é feito o teste para as demais condições normalmente e até aí, tudo bem. Agora, se fazemos o teste para a primeira condição (grupo A), será exibido que o número pertence ao grupo A, mas também será exibido que pertence ao grupo C. Isso acontece porque, depois que encerra a primeira verificação, inicia a segunda, e como o número se enquadra no grupo A, não vai se enquadrar no grupo B, logo o else entra em ação e exibe que pertence ao grupo C.

Mas esse problema também pode ser evitado usando if para as três condições, gerando uma verificação para cada caso, mas sem retornar nada caso não tenha uma resposta verdadeira. Aqui, é importante informar a condição para que o número pertença ao grupo C, diferente das demais formas.

let numero = prompt('Digite um número entre 1 e 30');
if(numero <= 10){
 
    alert('O número digitado está na categoria A');

}
else if(numero > 10 && numero <= 20){
    
    alert('O número está na categoria B');

}
if(numero >= 21 && numero <=30{
    alert('O número digitado está na categoria C');
}

Espero que tenha ajudado, e ficaria muito grato caso marcasse como solução, caso sua dúvida tenha sido solucionada! Grande abraço e bons estudos!

Ótimo, muito obrigado.

Somente mais um detalhe por favor. Para que se torne um looping, ou seja, toda vez que eu digitar um numero e apresentar a categoria(A,B ou C) ao dar o enter abra novamente a caixinha do Alert para a proxima digitação.

Olá novamente, Agnaldo, fico feliz em ter ajudado!

Nesse caso, pode ser feito o seguinte código:

let tentar = 1;

while(tentar == 1){

    let numero = prompt('Digite um número entre 1 e 30');
    if(numero <= 10){
    
        alert('O número digitado está na categoria A');

    }
    else if(numero > 10 && numero <= 20){
        
        alert('O número está na categoria B');

    }
    else{
        alert('O número digitado está na categoria C');
    }
    tentar = prompt('Deseja tentar novamente? 1 para Sim, 0 para não.')
    
};

Aqui eu defini uma variável 'tentar' para fazer o controle do loop. Enquanto essa variável for igual a 1, o loop será feito e o usuário poderá fazer o teste. No fim da iteração do loop, a variável recebe um novo valor que será digitado pelo usuário, para ele decidir se continua com o loop.

Espero ter ajudado, abraços!