¡Ya estamos en Twitter!

Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad

Uso de loops

por Uriel Lizama

Introducción:

En este tutorial les mostrare como crear loops para sus programas. Cubriré el uso de lo siguiente:

  • - while
  • - until
  • - for
  • - foreach

Loops

Los loops son una gran pieza de programación. El loop en sus varias maneras te permite correr un pedazo de codigo varias veces hasta que una cierta condición es alcanzada y entonces el loop para.

Nota: Cuando crees loops asegurate de que haya algo que frene al loop, o si no contunaría indefinidamente.

Los loops pueden ser usados de varias formas, por ejemplo cuando se combinan con expresiones regulares, puedes buscar algo en una lista haciendo que el loop búsque en cada elemento de la lista, y si es verdadera nuestra expresión entonces terminar ahí el loop.

WHILE

El comando "while" correra repetidamente un pedazo de codigo mientras su expresión condicional sea verdadera.

Su sintaxis es como la siguiente:

while(condicion){
bloque de codigo
}

Por ejemplo si quisieras asegurarte que una variable tuviera un cierto tamaño, podrías agrandarla de la siguiente manera:

while (lenght($valor) < 10){
$valor = "0$valor";
}

Esto agregaría un 0 a la variable hasta que su largo no sea mas de 10 digitos.

UNTIL

Este es básicamente similiar al loop de while. Ejecutará un bloque de código hasta que la expresión condicional se haga verdadera.

Tiene la misma sintaxis que el loop de while y puede ser usado de la misma manera. Por ejemplo este código hará lo mismo que el visto anteriormente:

until (length($valor) = 10){
$valor = "0$valor";
}

Estos dos loops tienen un bloque extra al final llamado "continue". Este bloque será ejecutado antes de que el loop inicié aún cuando en el bloque principal se salte (que puedes lograr con el comando "next").

Por ejemplo:

$i = 1;
while ($i < 10){
#bloque de codigo
}
continue{
$i++;
}

Esto correra por el bloque de codigo 10 veces antes de salir.

FOR

Este loop tiene tres expresiones separadas por un punto y coma en la primera parte. Estas son, la inicialización, la condicional y la re-inicializasión.

Por ejemplo:

for ($i = 1; $i < 10; $i++){
#bloque de codigo
}

Este hará lo mismo que el loop de while mencionado anteriormente, pero con menos lineas de codigo.

Tú solo debes de escoger cual es el mas adecuado para tu programa.

FOREACH

Este loop se ejecutará sobre una lista de variables.

Por ejemplo:

foreach $par (@pares){
#bloque de codigo
}

En este codigo perl leerá la lista en "@pares" y asignara la variable "$par" al elemento en turno. Haciendo esto hasta que se acabe la lista.

Por ejemplo:

@lista = ("manzana", "zanahoria", "melon", "fresa");

foreach $elemento (@lista){
print "$elemento\n";
}

Este pedazo de codigo imprimira cada elemento de la lista contenido en "@lista".

Nota final

Cuando estes creando tu código, siempre decide que tipo de loop vaz a usar para cada circunstancia de esta manera puedes hacer que tu código sea fácil de leer y más rápido al correr.

Codigo Final

#!/usr/bin/perl -w

use strict;

&loop_while;
&loop_until;
&loop_for;
&loop_foreach;

exit(1);


sub loop_while{

#Imprimimos el inicio de loop
print "\tESTAMOS EN EL LOOP WHILE\n";

#Iniciamos variable
my $a = 1;

#Iniciamos el loop
while ($a < 5){ #Hacemos el loop mientras $a sea menor que 5

print "\$a = $a\n"; #Imprimimos el valor de $a

$a++; #Sumamos uno al valor de $a
}

print "\n\n"; #Imprimimos unos espacios

}


sub loop_until{

#Imprimimos el inicio de loop
print "\tESTAMOS EN EL LOOP DE UNTIL\n";

#Iniciamos variable

my $b = "a";

until ($b eq "f"){ #Creamos el loop hasta que $b sea igual a f

print "\$b = $b\n"; #Imprimimos el valor de $b

$b++; #Sumamos uno a $b

}

print "\n\n"; #Imprimimos unos espacios
}


sub loop_for{

#Imprimimos el inicio del loop
print "\tESTAMOS EN EL LOOP DE FOR\n";

my $c;

for($c = 10; $c != 0; $c--){ #Inicializamos $c, hacemos la condicional
#de que $c no sea 0
#y le restamos uno cada vez

print "\$c = $c\n"; #Imprimimos el valor de $c

}

print "\n\n"; #Imprimimos unos espacios

}


sub loop_foreach{

#Hacemos una lista
my @mi_texto = ("Enrique", "Manuel", "Carlos", "Rodrigo", "Pepe", "Max",
"Javier", "Luis", "Jaime", "Daniel");


#Nuestro nombre a buscar
my $mi_sustituto = "Pepe";

#Imprimimos inicio de loop
print "\tESTAMOS EN EL LOOP DE FOREACH\n";

foreach my $texto(@mi_texto){ #Iniciamos la busqueda de cada elemento

if($texto eq $mi_sustituto){ #Si la linea es igual a nuestro nombre a
#sustituir

print "nombre sustituido\n"; #Imprimos esto

}else{ #de lo contrario

print "$texto\n"; #Imprimimos el nombre

}
}

}


¿Quiéres más tutoriales como este? Escribir tutoriales toma una gran cantidad de tiempo y esfuerzo. Si este tutorial te ayudó a aprender o a solucionar algo, por favor considera dejar alguna donación en apoyo a Perl en Español.

Cliquea en el botón de abajo para dejar tu donación por medio de PayPal.

Comparte:
Categorías de Tutoriales:
En Nuestros Foros:

    Software error:

    junk after document element at line 1, column 32, byte 32 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.
    

    For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error.

  • Entra a los foros »
Socializa:
Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Perl en Español es mantenido con Movable Type
Todo el contenido de Perl en Español está bajo una licencia CC:
Creative Commons License