1
respuesta

Revisión ejercicio - Duda

Hola, les comparto mi código pero me imprime varias veces lo mismo, y no se como arreglarlo, ya que quiero hacer con ciclo FOR.

Les agradezco mucho la ayuda.

import java.util.Random;
import java.util.Scanner;

int aleatorio = new Random().nextInt(100);
        System.out.println(aleatorio);
        Scanner leer = new Scanner(System.in);
        System.out.println("Escribe un numero: ");
        int numero = leer.nextInt();
        
        for (int i = 0; i < 5; i++){
            if (numero == aleatorio){
                System.out.println("Adivinaste!!! El numero es: " + numero);
            }
            else if (numero > aleatorio){
                System.out.println("El numero debe ser menor");
            }
            else if (numero < aleatorio){
                System.out.println("El numero debe ser mayor");
            }
            else {
                System.out.println("Se acabaron los intentos");
            }
        }
        }
    }
1 respuesta

¡Hola Jeyson, espero que estés bien!

Entiendo tu problema. Parece que el ciclo for está imprimiendo el resultado varias veces porque la lógica no está del todo correcta. En cada iteración del ciclo, deberías pedirle al usuario que ingrese un nuevo número, ya que en el código actual solo se pide una vez antes de entrar al ciclo.

Además, la lógica de las condiciones dentro del ciclo for no está manejando adecuadamente el número ingresado por el usuario. Te sugiero que reorganices un poco tu código para que se ajuste a la lógica del juego de adivinanzas que se pide en el ejercicio.

Aquí tienes un ejemplo de cómo podrías reestructurar tu código para que funcione correctamente:

import java.util.Random;
import java.util.Scanner;

public class JuegoAdivinanzas {
    public static void main(String[] args) {
        Random random = new Random();
        int aleatorio = random.nextInt(100);
        Scanner leer = new Scanner(System.in);
        
        for (int i = 0; i < 5; i++) {
            System.out.println("Intento " + (i + 1) + ": Escribe un número: ");
            int numero = leer.nextInt();
            
            if (numero == aleatorio) {
                System.out.println("¡Adivinaste! El número es: " + numero);
                break;
            } else if (numero > aleatorio) {
                System.out.println("El número debe ser menor");
            } else {
                System.out.println("El número debe ser mayor");
            }
        }
        
        System.out.println("Se acabaron los intentos. El número era: " + aleatorio);
    }
}

Espero que este ejemplo te ayude a corregir tu código. Recuerda que siempre puedes probar diferentes enfoques y modificar el código para adaptarlo a tus necesidades.

¡Buena suerte con tu juego de adivinanzas y sigue practicando!

Espero haber ayudado y buenos estudios!