Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: niurkafer en 17 de Septiembre 2015, 15:54
-
Hola buenas aquí os dejo mi codigo :) me gustaria saber qué tal muchas gracias
Crea un programa Java que permita “jugar a adivinar un número” como se expone a continuación. El programa debe iniciarse indicando “Se ha generado un número aletatorio entero entre 1 y 100, intente adivinarlo”. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse “No has acertado: el número es menor. Prueba otra vez”. Si el usuario introduce un número menor que el número aleatorio deberá indicarse “No has acertado: el número es mayor”. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador
import java.util.Random;
import java.util.Scanner;
public class SerieDeAleatorios {
public static void main (String[]Args){
Scanner entradaEscaner = new Scanner(System.in);
int numeroAleatorio = 0;
int entrada = 0;
Random rd = new Random();
numeroAleatorio = rd.nextInt(101);
System.out.print("Se ha generado un numero aleatorio entre 1 y 100. Intente adivinarlo: ");
while (numeroAleatorio != (entrada = entradaEscaner.nextInt())){
if (entrada < numeroAleatorio)
System.out.print("No has acertado, el número es mayor. Prueba otra vez: ");
else
System.out.print("No has acertado, el número es menor. Prueba otra vez: ");
}
System.out.println("LO HAS ADIVINADO");
}
}
-
Hola niurkafer! Todo bien aunque el rango no es el que pedía el ejercicio.
En el api de java podemos leer de nextInt (int n) de Random:
Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)
Por tanto numeroAleatorio = rd.nextInt(101); no está generando un aleatorio entre 1 y 100 como pide el ejercicio, sino entre 0 y 100. Para solucionar esto puedes escribir numeroAleatorio = rd.nextInt(100) + 1; De esta manera el número será mínimo 1, máximo 1+99=100, de ese modo el número estará entre 1 y 100.
Saludos!
-
vale ya lo he corregido gracias :)