[7. Expresiones Lógicas ]  [Tutorial de Fortran]  [9. Ciclos (Loops) ]

8. La sentencia if

Una parte importante de cualquier lenguaje de programación son las sentencias condicionales. La sentencia más común en Fortran es if, la cual tiene varias formas de uso. La forma más simple de la sentencia if es:
if (expresión lógica) sentencia
Lo anterior tiene que ser escrito en una sola línea. El siguiente ejemplo obtiene el valor absoluto de x:
if (x .LT. 0) x = -x
Si más de una sentencia necesita ser ejecutada dentro de la sentencia if, entonces la siguiente sintaxis deberá ser usada:
if (expresión lógica) then
   sentencias
endif
La forma más general más general de la sentencia if tiene la siguiente forma:
if (expresión lógica) then
   sentencias
elseif (expresión lógica) then
   sentencias
:
:
else
   sentencias
endif
El flujo de ejecución es de arriba hacia abajo. Las expresiones condicionales son evaluadas en secuencia hasta que se encuentra una que es verdadera. Entonces el código asociado es ejecutado y el control salta a la siguiente sentencia después de la sentenica endif.

Sentencias if anidadas

La sentencia if puede ser anidada varios niveles. Para asegurar la legibilidad es importante sangrar las sentencias. Se muestra un ejemplo:
      if (x .GT. 0) then
         if (x .GE. y) then
            write(*,*) 'x es positivo y x >= y'
         else
            write(*,*) 'x es positivo pero, x < y'
         endif
      elseif (x .LT. 0) then
         write(*,*) 'x es negativo'
      else
         write(*,*) 'x es cero'
      endif
Se debe evitar anidar muchos niveles de sentencias if ya que es difícil de seguir.


Ejercicios

Ejercicio A
Escribir un segmento de programa en Fortran 77 que asigne a una variable tipo real t los siguientes valores (suponiendo que x e y han sido declarados previamente):
x+y       si x e y son ambos positivos
x-y       si x es positivo e y es negativo
y         si x es negativo
0         si x o y es cero


 [7. Expresiones Lógicas ]  [Tutorial de Fortran]  [9. Ciclos (Loops) ]