La declaración If-Then-Else en el código Delphi

Los desarrolladores principiantes de Delphi deben tener cuidado con las trampas If-Then-Else

Disparo de fotograma completo de códigos de programa en pantalla

Getty Images/Degui Adil/EyeEm





En Delfos , la instrucción if se usa para probar una condición y luego ejecutar secciones de código en función de si esa condición es verdadera o falsa.

Una declaración general if-then-else se ve así:



|_+_||_+_|

Tanto el 'bloque verdadero' como el 'bloque falso' pueden ser una declaración simple o una declaración estructurada (rodeada de un par de inicio y fin).

Ejemplo de una declaración If-Then-Else anidada

Consideremos un ejemplo usando sentencias if anidadas:



|_+_||_+_|

¿Cuál será el valor de 'Cation'? Respuesta: '¡El número es NEGATIVO!' ¿No esperaba eso?

Tenga en cuenta que el compilador no tiene en cuenta su formato, podría haber escrito lo anterior como:

|_+_||_+_|

o incluso como (todo en una línea):

|_+_||_+_|

Los ';' marca el final de una declaración.



El compilador leerá la declaración anterior como:

|_+_||_+_|

o para ser más precisos:



|_+_||_+_|

Nuestra declaración ELSE se interpretará como parte de la declaración IF 'interna'. La declaración 'interna' es una declaración cerrada y no necesita un BEGIN..ELSE.

Como arreglar

Para asegurarse de que sabe cómo el compilador trata sus declaraciones if anidadas y para solucionar el 'problema' anterior, puede escribir la versión inicial como:



|_+_||_+_|

¡Oh! ¿¡El feo 'else' termina la línea if anidada!? ¡Compila, funciona!

La mejor solución es: siempre use pares de inicio y fin con declaraciones if anidadas:



|_+_||_+_|

¿Demasiados pares de inicio y fin para ti? Más vale prevenir que lamentar. De todos modos, las plantillas de código están diseñadas para agregar estructuras de esqueleto de uso común a su código fuente y luego completarlas.

Artículo enviado por Marcus Junglas