Las sentencias condicionales son fundamentales en cualquier lenguaje de programación, ya que permiten tomar decisiones basadas en condiciones específicas. En Delphi/Object Pascal, las sentencias condicionales más comunes son if
, case
, y else
.
- Sentencia
if
if
La sentencia if
se utiliza para ejecutar un bloque de código solo si una condición es verdadera.
Sintaxis Básica
Ejemplo
Explicación
edad
es una variable de tipoInteger
.- La condición
edad >= 18
se evalúa. - Si la condición es verdadera, se ejecuta
WriteLn('Eres mayor de edad.');
.
Sentencia if-else
La sentencia if-else
permite ejecutar un bloque de código si la condición es verdadera y otro bloque si es falsa.
if condición then // código a ejecutar si la condición es verdadera else // código a ejecutar si la condición es falsa
Ejemplo
var edad: Integer; begin edad := 16; if edad >= 18 then WriteLn('Eres mayor de edad.') else WriteLn('Eres menor de edad.'); end.
Explicación
- Si
edad
es menor que 18, se ejecuta el bloque de código dentro delelse
.
- Sentencia
case
case
La sentencia case
se utiliza para seleccionar entre múltiples bloques de código basados en el valor de una expresión.
Sintaxis Básica
case expresión of valor1: // código a ejecutar si expresión es igual a valor1 valor2: // código a ejecutar si expresión es igual a valor2 ... else // código a ejecutar si ningún valor coincide end;
Ejemplo
var dia: Integer; begin dia := 3; case dia of 1: WriteLn('Lunes'); 2: WriteLn('Martes'); 3: WriteLn('Miércoles'); 4: WriteLn('Jueves'); 5: WriteLn('Viernes'); 6, 7: WriteLn('Fin de semana'); else WriteLn('Día no válido'); end; end.
Explicación
dia
es una variable de tipoInteger
.- Dependiendo del valor de
dia
, se ejecuta el bloque de código correspondiente. - Si
dia
es 3, se imprimeMiércoles
. - Si
dia
es 6 o 7, se imprimeFin de semana
. - Si
dia
no coincide con ninguno de los valores especificados, se ejecuta el bloqueelse
.
Ejercicios Prácticos
Ejercicio 1
Escribe un programa que determine si un número es positivo, negativo o cero.
Solución
var numero: Integer; begin Write('Introduce un número: '); ReadLn(numero); if numero > 0 then WriteLn('El número es positivo.') else if numero < 0 then WriteLn('El número es negativo.') else WriteLn('El número es cero.'); end.
Ejercicio 2
Escribe un programa que imprima el nombre del mes basado en un número del 1 al 12.
Solución
var mes: Integer; begin Write('Introduce un número de mes (1-12): '); ReadLn(mes); case mes of 1: WriteLn('Enero'); 2: WriteLn('Febrero'); 3: WriteLn('Marzo'); 4: WriteLn('Abril'); 5: WriteLn('Mayo'); 6: WriteLn('Junio'); 7: WriteLn('Julio'); 8: WriteLn('Agosto'); 9: WriteLn('Septiembre'); 10: WriteLn('Octubre'); 11: WriteLn('Noviembre'); 12: WriteLn('Diciembre'); else WriteLn('Número de mes no válido'); end; end.
Errores Comunes y Consejos
-
Olvidar el
else
en una sentenciaif-else
:- Asegúrate de cubrir todos los casos posibles para evitar comportamientos inesperados.
-
No usar
begin
yend
para múltiples sentencias:- Si tienes más de una línea de código dentro de un
if
oelse
, usabegin
yend
para agruparlas.
if condición then begin // primera línea de código // segunda línea de código end else begin // primera línea de código // segunda línea de código end;
- Si tienes más de una línea de código dentro de un
-
No manejar todos los casos en una sentencia
case
:- Siempre incluye un bloque
else
para manejar valores no esperados.
- Siempre incluye un bloque
Conclusión
Las sentencias condicionales son esenciales para controlar el flujo de un programa. En Delphi/Object Pascal, las sentencias if
y case
proporcionan una manera flexible y poderosa de tomar decisiones basadas en condiciones. Practicar con ejemplos y ejercicios te ayudará a dominar estas estructuras y a escribir código más eficiente y claro.
Curso de Programación en Delphi/Object Pascal
Módulo 1: Introducción a Delphi/Object Pascal
- Introducción a Delphi y Object Pascal
- Configuración del Entorno de Desarrollo
- Primera Aplicación en Delphi
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
Módulo 2: Estructuras de Control y Procedimientos
- Sentencias Condicionales
- Bucles e Iteración
- Procedimientos y Funciones
- Ámbito y Ciclo de Vida de las Variables
- Manejo de Errores y Depuración
Módulo 3: Trabajando con Datos
- Arreglos y Cadenas
- Registros y Conjuntos
- Tipos Enumerados y Subrangos
- Manejo de Archivos
- Acceso a Bases de Datos
Módulo 4: Programación Orientada a Objetos
- Introducción a la POO
- Clases y Objetos
- Herencia y Polimorfismo
- Interfaces y Clases Abstractas
- Manejo de Excepciones en POO
Módulo 5: Características Avanzadas de Delphi
- Genéricos y Colecciones
- Multihilo y Programación Paralela
- Desarrollo Basado en Componentes
- Biblioteca de Tiempo de Ejecución de Delphi (RTL)
- Técnicas Avanzadas de Depuración
Módulo 6: Desarrollo de GUI con VCL y FMX
- Introducción a VCL
- Creación de Formularios y Controles
- Programación Orientada a Eventos
- Introducción a FireMonkey (FMX)
- Desarrollo Multiplataforma con FMX
Módulo 7: Desarrollo Web y Móvil
- Desarrollo Web con Delphi
- Servicios RESTful
- Desarrollo Móvil con Delphi
- Despliegue de Aplicaciones Móviles
- Integración con Servicios Web
Módulo 8: Mejores Prácticas y Patrones de Diseño
- Organización del Código y Documentación
- Patrones de Diseño en Delphi
- Técnicas de Refactorización
- Pruebas Unitarias y Desarrollo Basado en Pruebas
- Optimización del Rendimiento