La Sentencia while–AWK

En programación, un bucle significa una parte de programa que es (o al menos puede ser) ejecutada dos o más veces seguidas.

La sentencia while es la sentencia de bucle más simple de awk. Ejecuta repetidamente una sentencia mientras una condición sea cierta. Presenta la siguiente forma:

while (condición)
cuerpo

Aquí cuerpo es una sentencia a la que llamamos el cuerpo del bucle, y condición es una expresión que controla cuantas veces se ejecuta dicho cuerpo.

La primera cosa que hace la sentencia while es comprobar la condición. Si condición es cierta, ejecuta la sentencia cuerpo. (Verdad, como es usual en awk, significa que el valor de la condición es distinto de cero y la cadena nula). Después de que el cuerpo se haya ejecutado, se chequea la condición de nuevo, y si sigue siendo cierta, el cuerpo se ejecuta de nuevo. Este proceso se repite hasta que la condición deja de ser cierta. Si la condición es falsa inicialmente, el cuerpo del bucle nunca es ejecutado.

Este ejemplo imprime los tres primeros campos de cada registro, uno por línea.

awk '{ i = 1
while (i <= 3) { print $i
i++
}
}'

Aquí el cuerpo del bucle es una sentencia compuesta encerrada entre llaves, que contiene dos sentencias.

El bucle trabaja de la siguiente forma: primero, el valor de i es fijado a 1. Entonces, el while chequea si i es menor o igual a tres. Este es el caso cuando i es igual a uno, así que el campo iésimo es impreso. Entonces el comando i++ incrementa el valor de i y se repite el bucle. El bucle termina cuando i alcanza el valor de 4.

Como puedes comprobar, un carácter de nueva línea no es requerida entre la condición y el cuerpo; pero usándola hace que el programa sea más claro a menos que el cuerpo sea una sentencia compuesta o una muy simple. El carácter newline después de la llave de apertura que inicia la sentencia compuesta no es obligatoria, pero el programa será menos legible sino se pone.
























Publicar un comentario

0 Comentarios