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!"); }}
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 descargarMedir el tiempo de ejecución en JavaDe sistema decimal a sistema binario en c++ y Java3 libros sobre programacion orientada a objetos