Lazos y Bucles (GNU/Linux - Ubuntu)

Share Embed


Descripción

BUCLES O LAZOS

En el presente documento se explicará el uso, sintaxis y ejemplos de los bucles dedicados para el control de flujo en programación

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

Sistemas Operativos Integrantes: • • • •

Joel Arévalo Andrés Ortiz Carlos Chávez Edwin Cabrera

Información: Los bucles o loops en inglés, son una parte fundamental del control de flujo en cualquier lenguaje de programación. Estas construcciones nos permiten ejecutar la misma rutina repetidamente, en base a una condición 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 condición. for: Ejecutará la rutina a lo largo de toda una secuencia o entrada, siendo cada elemento de esta secuencia parte de la iteración a través de una variable. until: Ejecutará la rutina hasta que se cumpla una determinada condición.

Comando: for Descripción: 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 iteración. Son útiles para recorrer secuencias de números, líneas de un fichero de texto, expresiones matemáticas, etc... Sintaxis: for var in arg1 arg2 ... arg n do 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 iteración número $VAR" # decir "Estoy en la iteración número VAR" done #hecho echo "Programa finalizado." #decir "Programa finalizado."

Lazos y Bucles

Ejemplo 1:

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 sería:

Comando: While Descripción: Una estructura while se ejecutara mientras se cumpla una determinada condición de carrera. Es decir, que la condición especificada debe ser verdadera para que el contenido del bucle pueda ejecutarse. Supuestamente algo en dicho contenido producira variaciones en la condición de carrera hasta provocar que esta sea falsa, lo que producirá la salida del bucle. También podría construirse un while infinito, por ejemplo con condición de carrera, que siempre será verdadera, y podríamos forzar la salida en algún momento con una instrucción exit o break. Sintaxis:

Lazos y Bucles

while condicion do done

2

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 Descripción: Se ejecuta hasta que el código de salida de comando sea hace cierto. Sintáxis: until [condición]; do done Ejemplo:

Lazos y Bucles

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

3

Comando: break y continue Descripción: Permiten salir de un lazo (break) o saltar a la siguiente iteración (continue), break permite especificar el número 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 iteración actual del bucle, en lugar de todo el bucle. Esta declaración es útil cuando se ha producido un error, pero que desea tratar de ejecutar la siguiente iteración 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 repetición. Sintaxis: break / break n continue / continue n n especifica el número de lazos de los que queremos saltar o salir. Ejemplo con break: Creamos un ciclo que asignará los números 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

4

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 números 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." Bibliografía 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

• • •

5

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.