Está en la página 1de 6

BUCLES O LAZOS

En el presente documento se explicar el uso, sintaxis y ejemplos de los


bucles dedicados para el control de flujo en programacin

For / for-in-done
while / while-do done
until / until-do done
continue y break

Sistemas Operativos
Integrantes:

Joel Arvalo
Andrs Ortiz
Carlos Chvez
Edwin Cabrera

Informacin:
Los bucles o loops en ingls, son una parte fundamental del control de flujo en cualquier
lenguaje de programacin. Estas construcciones nos permiten ejecutar la misma rutina
repetidamente, en base a una condicin de carrera2 o bien hasta el final de una secuencia o
de un flujo de entrada de datos.
En el bash scripting, hay tres estructuras que nos permiten realizar bucles, las cuales son:
while: Ejecutar la rutina mientras se cumpla una determinada condicin.
for: Ejecutar la rutina a lo largo de toda una secuencia o entrada, siendo cada elemento de
esta secuencia parte de la iteracin a travs de una variable.
until: Ejecutar la rutina hasta que se cumpla una determinada condicin.

Comando: for
Descripcin: Los bucles de tipo for recorren una secuencia de principio a n, si no se sale con un
break, e introducen en una variable el valor de la actual iteracin. Son tiles para recorrer
secuencias de nmeros, lneas de un fichero de texto, expresiones matemticas, etc...
Sintaxis:
for var in arg1 arg2 ... arg n
do
<comandos>
done
Los argumentos se van sustituyendo en var hasta que ya no quede argumentos

#!/bin/bash
for VAR in $(seq 1 20)
# para VAR de 1 a 20
do
#hacer
echo "Estoy en la iteracin nmero $VAR"
# decir "Estoy en la iteracin nmero VAR"
done
#hecho
echo "Programa finalizado." #decir "Programa finalizado."

Lazos y Bucles

Ejemplo 1:

Ejemplo 2:
lista="10 9 8 7 6 5 4 3 2 1"
for var in $lista
do
echo $var
done
Aqu est el script escrito en el vim

La salida sera:

Comando: While
Descripcin: Una estructura while se ejecutara mientras se cumpla una determinada condicin
de carrera. Es decir, que la condicin especificada debe ser verdadera para que el contenido
del bucle pueda ejecutarse. Supuestamente algo en dicho contenido producira variaciones en
la condicin de carrera hasta provocar que esta sea falsa, lo que producir la salida del bucle.
Tambin podra construirse un while infinito, por ejemplo con condicin de carrera, que
siempre ser verdadera, y podramos forzar la salida en algn momento con una instruccin
exit o break.
Sintaxis:

Lazos y Bucles

while condicion
do
<comandos>
done

Ejemplo:
#!/bin/bash
CONTADOR=1
while [ $CONTADOR -lt 10 ]
do
echo "El contador vale ${CONTADOR} y es menor que 10."
let CONTADOR++
done

Comando: until
Descripcin: Se ejecuta hasta que el cdigo de salida de comando sea hace cierto.
Sintxis:
until [condicin];
do
<comandos a ejecutar>
done
Ejemplo:

Lazos y Bucles

Realizar un script que crea un nmero de directorios ingresado por el usuario en el directorio
home del usuario.

Comando: break y continue


Descripcin: Permiten salir de un lazo (break) o saltar a la siguiente iteracin (continue), break
permite especificar el nmero de lazos de los que queremos salir (break n).
La sentencia continue es similar al comando break, excepto que sta causa que salga de la
iteracin actual del bucle, en lugar de todo el bucle.
Esta declaracin es til cuando se ha producido un error, pero que desea tratar de ejecutar la
siguiente iteracin del bucle.
En definitiva:
Break: hace que salgamos del bucle o ciclo sin terminar de ejecutar las rdenes que le sigan.
Continue: hace que saltemos del ciclo actual, continuando el bucle de repeticin.
Sintaxis:
break / break n
continue / continue n
n especifica el nmero de lazos de los que queremos saltar o salir.
Ejemplo con break:
Creamos un ciclo que asignar los nmeros del 1 al 5 por cada vuelta de ciclo.
for contador in 1 2 3 4 5
do
echo $contador
if [ $contador eq 3 ]
then
break
fi
done
Ejemplo con continue:

Ls diferencia entre los dos ejemplos anteriores es que la sentencia break en el primer caso
har que se salga del ciclo for mientras que en el caso de continue ste impedir que se analice
el resto del ciclo actual, por lo tanto; no imprimir el ltimo valor.

Lazos y Bucles

for contador in 1 2 3 4 5
do
echo $contador
if [ $contador eq 3 ]
then
continue
fi
done

Ejercicios Propuestos y Resueltos


1. Construya un programa que escriba por pantalla una secuencia de 1 a 99,
utilice un bucle until para ello.
#!/bin/bash
clear
contador=1
until [ $contador -eq 100 ]
do
echo -n "${contador} "
let contador++
done
echo -e "\nFin de programa.\n"
2. Escriba un programa que calcule el resultado de sumar todos los nmeros del 1 al 100
secuencialmente, es decir: 1 + 2 + 3 + 4 + 5...
#!/bin/bash
# VariableS:
RES=0
# Bucle:
for VAR in $(seq 1 100)
do
echo "Sumando $RES + $VAR."
# Sumar VAR a lo anterior:
RES=$(expr $RES + $VAR)
done
# Resultado:
echo " El resultado es $RES."
Bibliografa
http://www.linux-es.org/node/238
http://doc.ubuntu-es.org/Script#Ciclos.2C_lazos_o_bucles
http://persoal.citius.usc.es/tf.pena/ASR/Tema_2html/node20.html#SECTION0004190
0000000000000

Lazos y Bucles

También podría gustarte