option
Cuestiones
ayuda
daypo
buscar.php

Test Tema 3 MPO (Fundamentos de Programación)

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
Test Tema 3 MPO (Fundamentos de Programación)

Descripción:
Test tema 3 MPO

Fecha de Creación: 2026/03/22

Categoría: Otros

Número Preguntas: 10

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

¿Cuál de las siguientes afirmaciones describe mejor la diferencia entre el switch clásico y el switch moderno (switch expression) en Java?. El switch moderno es igual que el clásico, solo cambia la palabra clave. El switch moderno permite devolver valores directamente, usa la sintaxis con -> y elimina la necesidad de break en cada caso. El switch moderno solo funciona con números enteros. El switch moderno es más lento y por eso no se recomienda en código profesional.

¿Por qué se consideran buena práctica los enum cuando se combinan con switch?. Porque hacen que el código ocupe menos memoria. Porque evitan errores de escritura en cadenas literales, permiten autocompletado y ayudan al compilador a detectar casos no manejados. Porque obligan a que todos los métodos sean estáticos. Porque solo se pueden usar en proyectos pequeños.

¿Qué ventaja concreta aporta usar un switch expression frente a una cadena larga de if/else if sobre la misma variable?. Ninguna, ambos son exactamente iguales en legibilidad. El switch expression suele producir código más compacto, declarativo y con menor complejidad ciclomática. El switch expression impide usar enum. El switch expression obliga a usar siempre valores por defecto (default).

¿Cuál es la relación correcta entre break, continue y return en estructuras de control?. break y continue son equivalentes; return solo se puede usar en bucles while. break rompe el bucle actual, continue salta a la siguiente iteración y return termina la ejecución completa del método. return solo sale del bucle más interno, nunca del método. continue detiene el programa por completo.

¿Para qué sirven las etiquetas (labels) cuando se usan junto con break o continue?. Para cambiar el nombre de las variables dentro del bucle. Para indicar al compilador qué método debe ejecutarse primero. Para poder salir explícitamente de un bucle externo o saltar directamente a la siguiente iteración de un bucle etiquetado en estructuras anidadas. Para hacer el código más lento pero más seguro.

¿Qué se entiende por “código espagueti” en el contexto de estructuras de control?. Código con muchos comentarios y poca funcionalidad. Código con demasiados niveles de anidación (if anidados, bucles dentro de bucles) que resulta difícil de leer, mantener y modificar. Código que solo usa switch en lugar de if. Código que no compila por errores de sintaxis.

En el siguiente pseudocódigo simplificado: ¿Qué buena práctica se está aplicando principalmente?. Uso de etiquetas para romper bucles. Uso de recursividad para simplificar el flujo. Retornos tempranos (return) para evitar niveles extra de anidación y hacer la lógica más clara. Sustitución de switch por if/else.

¿Cuál es la idea principal de una máquina de estados finita (FSM) aplicada al control de flujo?. Permitir que un programa tenga infinitos estados sin restricciones. Organizar el comportamiento del sistema en un conjunto finito de estados bien definidos, con transiciones claras entre ellos según eventos o condiciones. Reemplazar todas las estructuras de control por un único while(true). Eliminar la necesidad de depurar, ya que los errores dejan de existir.

¿Por qué es preferible usar un enum EstadoSesion { INICIO, LOGUEADO, SALIDA } en lugar de varias variables booleanas como isInicio, isLogueado, isSalida?. Porque los enum son automáticamente más rápidos que los booleanos. Porque un enum obliga a usar switch y bloquea el uso de if. Porque un enum define un único estado coherente en cada momento y evita combinaciones imposibles (por ejemplo, estar “logueado y salido” a la vez). Porque los booleanos no se pueden depurar con un IDE.

En la depuración de bucles y condicionales, ¿qué combinación de prácticas se considera más profesional?. Usar solo System.out.println y nunca un depurador. Poner un try/catch enorme alrededor de todo el código y confiar en la excepción. Usar breakpoints del IDE, inspeccionar variables, añadir logs informativos y, cuando sea necesario, aislar el bloque problemático en un método y cubrirlo con tests unitarios. Reescribir todo el módulo cada vez que aparece un bug.

Denunciar Test