Mostrando entradas con la etiqueta dato double. Mostrar todas las entradas
Mostrando entradas con la etiqueta dato double. Mostrar todas las entradas

martes, 25 de febrero de 2014

Generar número aleatorio en Java Math.random() – dinero – Shipping – Rooms



Si queremos generar unnúmero aleatorio en java lo que haremos será hacer uso del métodoMath.random(). Éste método devuelve un valor aleatorio de tipodoublecon signo positivo, mayor o igual a 0.0 e inferior a 1.0. Es útil si queremos que en nuestras aplicaciones suceda algo dependiendo al valor aleatorio generado. Tambiénes posible aumentar el rango del valor aleatorio, de manera que no sea solo mayor o igual a 0.0 e inferior a uno, sino que seamayor o igual a 0 y menor a un número que queramos.¿Como se haría? solo debemos multiplicar el método Math.random() por dicho número.

Vamos generar 5 valores aleatorios en un rango mayor o igual que 0 y menor a 5 con un ciclo for y veamos los resultados:


public class NumeroAleatorio {
static double numero;

public static void main(String args[]){
for(int i = 0; i 5; i++){

numero = Math.random() * 5;
System.out.print(numero);
System.out.println("");
}
}
}

También podemos generar valores enteros aleatorios, imaginemos que tenemos un dado, cuando lo lanzamos hay 6 posibilidades, puede ser 1,2...6. Simulemos un dado con el Math.random



public class NumeroAleatorio {
static int numero;

public static void main(String args[]){

numero = (int) (Math.random() *6) + 1;
System.out.print(numero);
System.out.println("");
}
}

En éste caso la variable numero será deltipo entero, como el métodoMath.random retorna un valor del tipodouble haremos uso deloperador cast(int). El operador cast lo que hace esforzar a un dato, variable o expresión a convertirse en un nuevo tipo de dato, en nuestro caso en un entero. Es importante saber que la operación(int) (Math.random() *6)retornara un valor entero mayor o igual que 0 y menor que 6. Pero nuestro dado necesita un valor entre 1 y 6 por estosumamos 1 a nuestra operación(int) (Math.random() *6) + 1. De ésta manera podremos simular un dado en java.

¿Como sería si quiero que ocurra algo dependiendo del valor generado? Lo que haremos será hacer uso de los operadores relacionales. Generemos un valor aleatorio en que si éste es menor que 0.5 diga Hola mundo! y si es menor que 1 diga Hello World!.


public class NumeroAleatorio {
static double numero;

public static void main(String args[]){

numero = Math.random();
if(numero 0.5)
System.out.println("Hola mundo!");
else
System.out.println("Hello World!");
}
}

¿Y si queremos usar elMath.random junto a unasentencia switch se podría? ¡Seguro que si!


public class NumeroAleatorio {
static int numero;

public static void main(String args[]){

numero = (int) (Math.random() * 5) + 1;
switch(numero){
case 1:
System.out.println("Venezuela");
break;
case 2:
System.out.println("Argentina");
break;
case 3:
System.out.println("Colombia");
break;
case 4:
System.out.println("Ecuador");
break;
case 5:
System.out.println("Peru");
break;
}

}
}

Lo que hacemos es nuevamente utilizar eloperador cast para convertir el valor generado en un entero, luego hacemos una sentencia switch con 5 posibilidades, en nuestro caso imprimimos en pantalla el nombre de un país dependiendo del número generado.

También te podría interesar:
60+ Manuales y libros sobre programación para descargar
Medir el tiempo de ejecución en Java
De sistema decimal a sistema binario en c++ y Java
3 libros sobre programacion orientada a objetos