La sentencia break se sale del bucle for, while o do-while más interno en el que está contenido. El siguiente ejemplo encuentra el divisor más pequeño de cualquier entero, y también identifica números primos:
awk '# encuentra el divisor más pequeño de num
{ num = $1
for (div = 2; div*div <= num; div++) if (num % div == 0)
break
if (num % div == 0)
printf "Smallest divisor of %d is %d\n", num, div else
printf "%d is prime\n", num }'
Cuando el resto es cero en la primera sentencia if, awk se sale inmediatamente del bucle for en el que está contenido. Esto significa que awk procede inmediatamente a la sentencia que sigue al bucle y continúa el procesamiento.
Aquí está otro programa equivalente al anterior. Ilusta como la condición de un for o while podría simplemente ser substituida con un break dentro de un if:
awk '# find smallest divisor of num
{ num = $1
for (div = 2; ; div++) { if (num % div == 0) {
printf "Smallest divisor of %d is %d\n", num, div
break
}
if (div*div > num) {
printf "%d is prime\n", num break
}
}
}'
0 Comentarios