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

123
Visualizações
Cómo hacer un bucle para obtener entrada nuevamente - Java

Estoy creando un juego de Veintiuno y no sé cómo implementar los bucles. Lo que quiero hacer es presentar el juego ("¡Bienvenido a 21!"), pedirle al jugador que tire los dados escribiendo y, y darle los valores de sus tiradas de dados. Luego, quiero retroceder y pedirles que tiren los dados por segunda vez pidiéndoles que escriban y. Si no escriben 'y', quiero que aparezca un mensaje diciéndoles que tienen que escribir y para jugar. Básicamente, se les seguirá preguntando si quieren jugar hasta que presionen y.

Este es mi código hasta ahora. El problema que tengo es que si el usuario presiona 'm' en lugar de 'y', le dirá "ingrese y para jugar", pero si el usuario presiona y después de eso, seguirá diciéndole que tiene que hacerlo. presione y (aunque ya lo hicieron esta segunda vez).

 import java.util.Scanner; import java.util.Random; public class TwentyOne { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Welcome to 21!"); System.out.print("Roll the dice, y/n?: "); String roll1 = input.nextLine(); while (true) { if(roll1.equals("Y") || roll1.equals("y")) { int die1 = (int) (Math.random() * 6) + 1; int die2 = (int) (Math.random() * 6) + 1; int sum1 = die1 + die2; System.out.println("Your dice rolled a sum of: " + sum1); break; } else { System.out.println("Please press 'y' to roll the dice and play. "); String rollError = input.nextLine(); } } }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Ha asignado la segunda entrada a rollError String rollError = input.nextLine(); y no lo usa para verificar la nueva entrada del usuario if(roll1.equals("Y") || roll1.equals("y")) . Cambiar String rollError = input.nextLine(); para roll1 = input.nextLine();

over 4 years ago · Santiago Trujillo Relatório

0

Este aquí solicitará infinitamente al usuario nuevos rollos (todos activados al presionar "y", observe el equalsIgnoreCase() también) ya que esa es su necesidad descrita. Pero si alguna vez necesitas un juego que termine, no olvides cerrar (input.close()) el objeto Scanner para evitar fugas.

 Scanner input = new Scanner(System.in); System.out.println("Welcome to 21!"); boolean isYPressed = false; String roll1 = ""; while (true) { System.out.print("Roll the dice, y/n?: "); roll1 = input.nextLine(); isYPressed = roll1.equalsIgnoreCase("y"); while (!isYPressed) { System.out.println("Please press the Y key"); roll1 = input.nextLine(); isYPressed = roll1.equalsIgnoreCase("y"); } int die1 = (int) (Math.random() * 6) + 1; int die2 = (int) (Math.random() * 6) + 1; int sum1 = die1 + die2; System.out.println("Your dice rolled a sum of: " + sum1); }
over 4 years ago · Santiago Trujillo 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