Desarrollo de aplicaciones Web. Estructuras de repetición (página 2)
Enviado por Ing. Pablo Cesar Ttito C.
Si se salió por llegar al final de la cadena, la variable $i valdrá lo mismo que la longitud en caracteres de esa cadena.
En el condicional simplemente se comprueba si $i vale o no lo mismo que la longitud de la cadena, mostrando los mensajes adecuados en cada caso.
Bucle do/while
Este tipo de bucle no difiere en exceso del anterior.
La sintaxis es la siguiente:
do{ instruccion1; instruccion2; … } while (condición) |
La diferencia con respecto a los bucles while es que este tipo de bucle evalúa la condición al final con lo que, incluso siendo falsa desde el principio, éste se ejecuta al menos una vez.
Todo lo explicado referente al bucle se aplica también al do…while, sin embargo la principal diferencia con este es que el do…while siempre ejecuta al menos la primera iteración, mientras que en el while pudiera no ejecutar ninguna iteración, esto ocurre si la condición es falsa desde antes del inicio del bucle.
Ejemplo01
Salida
5! es igual a: 120
Explicación
Claro que, si cambiamos la primera instrucción por $i = 0 el bucle se ejecutará al menos una vez, pues la condición se evalúa al final, y dará la salida (errónea):
0! es igual a : 0
Reflexión:
Al programar un bucle es importante reflexionar por un momento si nos conviene usar while o do…while: ¿necesitamos que se evalúe la condición antes de la primera iteración? ¿o el bucle debe entrar al menos una vez antes de evaluar la condición?
Bucle for
PHP está provisto de otros tipos de bucle que también resultan muy prácticos en determinadas situaciones.
El más popular de ellos es el bucle for que, como para los casos anteriores, se encarga de ejecutar las instrucciones entre llaves.
La diferencia con los anteriores radica en cómo se plantea la condición de finalización del bucle.
La sintaxis es la siguiente:
for (inicialización; condición; actualización)
{ instruccion1; instruccion2; …}
Descripción
1. Inicialización: Es una expresión que ejecuta una sola vez al inicio y predetermina el primer valor inicial, mas comúnmente asignado a una variable ejemplo:
:$i = 1;
2. Condición: Es una expresión que se evalúa como falsa o verdadera, si es falsa el bucle finaliza, en caso contrario el bucle ejecuta la sentencia ejemplo:
:$i <= 5;
3. Actualización: Es una expresión que modifica la expresión de inicialización comúnmente en incremento o decremento Ejemplo:
:$i += 1
Nota:
Observe que en esta ultima expresión no lleva (;).
Explicación
Completada así la primera iteración se vuelve a evaluar la segunda expresión, y si esta es verdadera se ejecuta nuevamente la sentencia, con esto se completa una segunda iteración. Las iteraciones continúan hasta que la segunda expresión sea evaluada a falso.
En resumen estas expresiones son la inicialización, donde se dá el valor inicial a la variable de control del bucle; la condición que inicia cada iteración solo si es evaluada a verdadero; y el actualización o paso que incrementa o decrementa la variable de control al final de cada iteración para garantizar que la condición eventualmente evalúe a falso.
Script
Resultado
1
2
3
4
5
Ejemplo01
Para aclarar su funcionamiento vamos a expresar el ejemplo de bucle while visto en el capítulo anterior en forma de bucle for:
Explicación
Las expresiones dentro del paréntesis definen respectivamente:
Inicialización de la variable. Valida para la primera vuelta del bucle.
Condición de evaluación a cada vuelta. Si es cierta, el bucle continua.
Acción a realizar al final de cada vuelta de bucle.
Ejemplo02
Reflexión:
Bueno, ya sabemos como crear dos tipos de bucles, los while (o do…while) y los for.
Aunque puedes hacer codificar programas que hagan lo mismo con cualquiera de los bucles lo más lógico sería usar bucles while cuando no sabes el número de iteraciones que debes hacer (y la condición es del tipo ($respuesta == "Si")), y bucles for cuando si lo sabes (y la condición es del tipo ($X <= 10)).
Bucle foreach
Este bucle, implementado en las versiones de PHP4, nos ayuda a recorrer los valores de un array lo cual puede resultar muy útil por ejemplo para efectuar una lectura rápida del mismo. Recordamos que un array es una variable que guarda un conjunto de elementos (valores) catalogados por claves.
La estructura general es la siguiente:
Foreach ($array as $clave=>$valor) { instruccion1; instruccion2; …; } |
Un ejemplo práctico es la lectura de un array lo cual podría hacerse del siguiente modo:
Explicación:
Este script se encargaría de mostrarnos por pantalla el contenido del array $moneda.
No resultaría mala idea crear una función propia basada en este bucle que nos permitiese visualizar arrays monodimensionales y almacenarla en nuestra librería.
Esta función podría ser definida de esta forma:
Salir de un bucle:
Break y continue
Estas dos instrucciones se introducen dentro de la estructura y nos sirven respectivamente para escapar del bucle o saltar a la iteración siguiente.
Pueden resultarnos muy prácticas en algunas situaciones.
Ejemplos
Aunque un bucle se termina cuando la condición se evalúa a falsa hay ocasiones en que necesitamos interumpir el bucle abruptamente.
La instrucción break (Español: Interrupción) interrumpe inmediatamente la ejecución del bucle y el control se pasa a la instrucción inmediatamente posterior al while.
Veamos este ejemplos usando break:
Salida:
El primer múltiplo de 11 entre 50 y 100 es: 55
Operadores
Operadores de incremento
Sirven para aumentar o disminuir de una unidad el valor de una variable
++$variable | Aumenta de 1 el valor de $variable | ||
–$variable | Reduce de uno el valor de $variable |
Operadores combinados
Una forma habitual de modificar el valor de las variables es mediante los operadores combinados:
$variable += 10 | Suma 10 a $variable | |
$variable -= 10 | Resta 10 a $variable | |
$variable .= "añado" | Concatena las cadenas $variable y "añado" |
Este tipo de expresiones no son más que abreviaciones de otras formas más clásicas: $variable += 10 es lo mismo que: $variable = $variable+10
Aplicación del alumno
Mostrar la tabla de multiplicar del 2. Emplear el for, luego el while y por último el do/while.
Ing. Pablo Cesar Ttito C.
BLOGGER
http://www.solucionesphp.blogspot.com/
Envía tu comentario
Página anterior | Volver al principio del trabajo | Página siguiente |