Contexto
El flujo de control es el sistema circulatorio de cualquier programa: determina qué caminos lógicos tomar y qué bloques repetir. Un sistema de atención al cliente en una sucursal bancaria o centro médico debe:
- Recorrer turnos uno a uno (bucle
for). - Omitir turnos donde el cliente no se presentó (instrucción
continue). - Tomar decisiones según el tipo de trámite (estructura
switch). - Cobrar en partes hasta que el saldo llegue a cero (bucle
while). - Exigir al menos un control de auditoría de seguridad (bucle
do-while). - Cerrar la ventanilla si se cumplió el tiempo límite del día (instrucción
break).
Construir este simulador te permitirá dominar con precisión milimétrica cuándo utilizar cada estructura de control en Java.
Consigna
Escribí la clase SimuladorTurnos.java que modele la jornada de atención de una oficina.
1. Variables de Control y Acumuladores
Inicializá antes del bucle las variables necesarias para el balance diario:
tiempoTotal(int, minutos acumulados).recaudacionTotal(double, dinero cobrado).atendidos(int, cantidad de clientes exitosos).cancelados(int, clientes que faltaron).limiteMinutos(final int = 60).
2. Estructura Principal (for)
Iterá sobre 8 turnos:
for (int turno = 1; turno <= 8; turno++) {
// 1. Calcular código de trámite
int codigo = (turno * 3) % 4 + 1;
// 2. Evaluar trámite con switch
// ...
}
3. Manejo de Saltos y Bucles Internos
continue: cuandocodigo == 4, incrementá el contador de cancelados, mostrá el aviso y llamá acontinue. Esto salta inmediatamente el resto del cuerpo del bucle y pasa al siguiente turno.while: para trámites de tipo2($2500), inicializá una variable localsaldoPendiente = 2500;y en unwhile (saldoPendiente > 0)descontá pagos de $1000 (o el remanente si es menor) hasta llegar a 0.do-while: ejecutá una verificación de firma digital simulada. La condición se evalúa al final, asegurando que se realice al menos una comprobación.break: tras atender un turno, evaluá sitiempoTotal >= limiteMinutos. Si es así, avisá por consola y salí del bucle principal conbreak.