Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

293
Visualizações
Cómo usar un ciclo while para avisar al usuario hasta que ingrese 1 de 4 entradas

Estoy atascado en cómo hacer que este bucle while funcione correctamente. Quiero que el programa pregunte al usuario "¿Piedra, papel o tijera?" a lo que pueden ingresar correctamente 'piedra', 'papel', 'tijeras' o 'bomba' (código de trucos para ganar automáticamente ... lol). Si escriben algo que no sean esas 4 entradas aceptables, debería aparecer una alerta. Luego, se les debe solicitar la misma pregunta nuevamente. Esto debería repetirse hasta que ingresen una de esas 4 entradas aceptables.

Hasta ahora, funciona si escriben su elección correctamente la primera vez que aparece el aviso. Sin embargo, si escriben algo diferente a las 4 entradas aceptables anteriores, activando la alerta y el mensaje en el ciclo while, el programa no se ejecuta correctamente incluso si ingresan una de las 4 entradas la próxima vez que se les solicite. Se atasca alternando entre la alerta y el mensaje de la eternidad.

Entonces, ¿cómo puedo hacer que este ciclo while funcione?

 function playGame () { var input = prompt ('Rock, paper, or scissors?').toLowerCase(); // testing 123 // console.log (input); var jkl = 0; if (input === 'rock' || input === 'paper' || input === 'scissors' || input === 'bomb') { jkl++ }; while (jkl === 0) { alert ('ErRoR eRrOr 3rR0r!!!!11'); prompt ('Rock, paper, or scissors?').toLowerCase(); if (input === 'rock' || input === 'paper' || input === 'scissors' || input === 'bomb') { jkl++ }; } console.log (input); var userChoice = getUserChoice (input); var computerChoice = getComputerChoice (); console.log (`You: ${userChoice}`); console.log (`Computer: ${computerChoice}`); console.log (determineWinner (userChoice, computerChoice)); }; playGame ();

Después del bucle while intentado, hay más código que pertenece a las funciones que aparecen anteriormente en el programa. Ignorar eso supongo. A menos que alguien crea que es relevante, en cuyo caso también puedo publicarlo. Simplemente no quería pegar un enorme muro de código aquí.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Debe actualizar la variable de input en el ciclo.

 const options = ['rock', 'paper', 'scissors', 'bomb'] const getOptionPrompt = () => prompt('Rock, paper, or scissors?').toLowerCase(); const checkOption = (input, options) => options.includes(input) function playGame() { let input = getOptionPrompt(); // testing 123 // console.log (input); var jkl = 0; if (checkOption(input, options)) { jkl++ }; while (jkl === 0) { alert('ErRoR eRrOr 3rR0r!!!!11'); input = getOptionPrompt(); if (checkOption(input, options)) { jkl++ }; } console.log(input); // the functions after this are not defined in the example /* var userChoice = getUserChoice(input); var computerChoice = getComputerChoice(); console.log(`You: ${userChoice}`); console.log(`Computer: ${computerChoice}`); console.log(determineWinner(userChoice, computerChoice)); */ }; playGame();

Pero definitivamente actualizaría un poco la lógica:

 const options = ['rock', 'paper', 'scissors', 'bomb'] const getOptionPrompt = () => prompt('Rock, paper, or scissors?')?.toLowerCase() || null; const checkOption = (input, options) => options.includes(input) function playGame(options) { const input = getOptionPrompt(); if (!checkOption(input, options) && input != null) { alert('ErRoR eRrOr 3rR0r!!!!11'); playGame(options) } else if (input == null) { console.log("game canceled") } else { console.log("result:", input) } }; playGame(options);

De esta manera, no necesita la variable jkl , no necesita el bucle while : si se escribe una respuesta que no es aceptable, aparece una alerta de error y el juego comienza de nuevo.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puedes cambiar esta línea

 prompt ('Rock, paper, or scissors?').toLowerCase();

a

 input = prompt ('Rock, paper, or scissors?').toLowerCase();

Su código está verificando la variable de entrada sin actualizarla.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda