La Sentencia if - AWK

La sentencia if-else es una sentencia para la toma de decisiones de awk. Presenta la siguiente forma:

if (condición) cuerpo-then [else cuerpo-else]

Aquí condición es una expresión que controla qué es lo que realizará el resto de la sentencia. Si la condición es verdad, entonces se ejecuta el cuerpo-then; sino se ejecuta el cuerpo-else (asumiendo que esté presente la clásula else). La parte else de la sentencia es opcional. La condición se considera falsa si su valor es 0 o una cadena nula, sino se considerará verdadera.

Aquí se presenta un ejemplo:

if (x % 2 == 0) print "x es par"
else
print "x es impar"

En este ejemplo, si la expresión x%2 == 0 es cierta (es decir, el valor de x es divisible entre 2), entonces se ejecuta la primera sentencia print, sino se ejecuta la segunda sentencia print.

Si el else aparece en la misma línea que el cuerpo-then, y el cuerpo-then no es una sentencia compuesta (no aparece entre llaves), entonces un punto y coma debe separar el cuerpo-then del else. Para ilustrar esto veamos el siguiente ejemplo:

awk '{ if (x % 2 == 0) print "x is even"; else print "x is odd" }'

Si olvidas el ‘;’ awk no será capaz de realizar el parse de la sentencia, y obtendrás un error de sintáxis. De todas formas es una mala práctica escribir la sentencia else de esta forma, ya que puede llevar al lector a confusión.


















Publicar un comentario

0 Comentarios