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

Dúvida no Ex. 1 da Aula 7 - Desafio final

Boa noite Pessoal, estudando em plena madrugada, este é meu horario livre, o desafio fui muito bem, mas tentei algumas coisas como, verificar se o numero apostado se repetiu, se há numeros apostados menor que 0 (zero) e maior que 60, alguem pode me dar uma dica nestas duas condiçoes, tentei, mas nao consegui...

meu trecho da aposta

    var aposta = [];
        for (var i =0; i < 6; i++) {
                aposta[i] = parseInt(prompt("Digite o " + (i+1) + "º numero:"));
                if (aposta[i] < 1 && aposta[i] > 60) {
                    alert("Valor invalido!");
                }
            }
5 respostas

E o que aconteceu de errado?

Olá João Eduardo!

Veja bem, esse seu código não está funcionando pois você usou o operador errado:

if (aposta[i] < 1 && aposta[i] > 60) {
                    alert("Valor invalido!");
                }

Você está utilizando o operador E (&&), logo para que o código de dentro do if() seja chamado, as duas condições tem que ser verdadeiras simultaneamente. Lendo sua condição, ficaria da seguinte forma:

se aposta[i] for menor que 1 E aposta[i] for maior que 60

Porém veja que isso é matematicamente impossível, nenhum número é menor que 1 e maior que 60 ao mesmo tempo.

Para funcionar o correto seria você usar o operador OU (||). Porque assim, atendendo apenas a uma das condições o código será executado.

Pois assim, se aposta[i] for menor que 1 OU aposta[i] for maior que 60, o código será executado.

Outra coisa é que você disse que queria verificar números menores que 0 então o correto seria:

if (aposta[i] < 0 || aposta[i] > 60) {
                    alert("Valor invalido!");
                }

Quanto a verificar se o número apostado se repetiu, você deseja simplesmente verificar se teve algum número repetido ou impedir que o usuário coloque números repetidos?

Espero ter ajudado! Bons Estudos!

Romário Torres Alcântara boa noite, muito obrigado pela resposta, entendi o sua explicação do operador logico, valeu mesmo, em relação ao numero apostado seria impedir sua repetição, quero implementar o desafio deixando uma copia fiel da mega sena.

solução!

Olá João! Desculpe a demora para responder. Para impedir que o usuário repita o número você pode por um simplesmente utilizar um for() para percorrer a Array e ver se o número ja foi dito, mas para isso, ao invés de atribuir o valor passado diretamente a Array, atribua-o primeiramente a uma variável. Ficando da seguinte forma:

var numeroArriscado = parseInt(prompt("Digite o " + (i+1) + "º numero:"));

for (var b =0; b < 6; b++) {
        if(aposta[b] == numeroArriscado){
             alert("Este número já foi escolhido!");
}

Vale ressaltar que tem outras formas de se fazer isso e esta pode não ser eficaz em seu código. Apenas falei essa forma, pois é uma das mais simples e por não saber como está seu código. Dependendo do código essa forma pode trazer alguns bugs e etc..

Espero ter ajudado! Bons Estudos

Os teste foram só sucesso,

muito obrigado