Estructuras de Control Condicional en Java y Generación de Números Aleatorios

En el desarrollo de software con Java, el control de flujo determina el orden en que se ejecutan las instrucciones. Podemos clasificar estas estructuras en tres categorías principales:

  • Estructura secuencial: Las instrucciones se ejecutan una tras otra, de arriba hacia abajo.
  • Estructura de selección: Se ejecutan bloques de código específicos basados en el cumplimiento de una condición.
  • Estructura de repetición: Permite iterar un bloque de código múltiples veces.

1. Estructura Condicional If

1.1. Condicional Simple (if)

Se utiliza para ejecutar un bloque de código solo si una condición booleana es verdadera.


if (condicion) {
   // Bloque de código a ejecutar si la condición es true
}
   

Si la evaluación resulta en true, se ejecuta el contenido entre llaves. Si es false, el programa salta directamente a la siguiente instrucción después del bloque if. Es fundamental recordar que la condición siempre debe devolver un valor boolenao.

1.2. Condicional Doble (if-else)

Permite definir una ruta alternativa cuando la condición no se cumple.


int velocidad = 90;
if (velocidad > 100) {
   System.out.println("Exceso de velocidad detectado.");
} else {
   System.out.println("Velocidad dentro del límite permitido.");
}
   

1.3. Condicional Múltiple (if-else-if)

Se emplea cuando existen múltiples condiciones excluyentes. El sistema evalúa las expresiones de arriba hacia abajo y ejecuta el primer bloque cuya condición sea verdadera.


int calificacion = 85;
if (calificacion >= 90) {
   System.out.println("Excelente");
} else if (calificacion >= 80) {
   System.out.println("Muy bueno");
} else if (calificacion >= 70) {
   System.out.println("Satisfactorio");
} else {
   System.out.println("Necesita mejorar");
}
   

Nota: Al trabajar con rangos, es crucial organizar las condiciones de la más restrictiva a la más general para evitar que una condición amplia capture casos que deberían ser tratados por una más específica.

1.4. Condicionales Anidados

Un bloque if puede contener otros bloques if en su interior. Aunque no hay un límite técnico estricto, se recomienda no superar los tres niveles de anidamiento para mantener la legibilidad del código.

2. Estructura de Selección Switch

La sentencia switch es ideal para manejar múltiples ramas basadas en el valor exacto de una sola expresión.


int diaSemana = 3;
switch (diaSemana) {
   case 1:
       System.out.println("Lunes");
       break;
   case 2:
       System.out.println("Martes");
       break;
   case 3:
       System.out.println("Miércoles");
       break;
   default:
       System.out.println("Día no válido");
       break;
}
   

Aspectos clave de switch:

  • Tipos admitidos: byte, short, char, int, String (desde Java 7) y tipos Enum.
  • Break: La instrucción break finaliza la ejecución del switch. Si se omite, ocurre el fenómeno de "caída" (fall-through), ejecutando los casos subsiguientes sin evaluar la condición.
  • Default: Se ejecuta si ninguno de los casos anteriores coincide con el valor de la expresión.

3. Generación de Números Aleatorios con Math.random()

El método Math.random() es una herramienta integrada para generar valores pseudoaleatorios de tipo double en el rango [0.0, 1.0).

Para obtener un valor decimal básico:

double valorBase = Math.random();

Para generar un número entero en un rango específico, por ejemplo, entre 0 y 9:

int numeroCeroANueve = (int) (Math.random() * 10);

Para obtener un número entero en un rango personalizado [min, max), se utiliza la siguiente fórmula:


int min = 15;
int max = 25;
int resultadoRango = (int) (Math.random() * (max - min) + min);
System.out.println("Número aleatorio entre 15 y 24: " + resultadoRango);
   

Etiquetas: java Control Flow Math.random Programming Fundamentals

Publicado el 7-2 03:54