Blog
Bucle while (bucle mientras)
- Publicado por: leo
- Categoría: Curso principiante PHP
Te doy la bienvenida a esta nueva lección del curso básico de PHP donde conoceremos a los bucles while y do while. Estas con las últimas estructuras de control que veremos en este curso, su uso es similar al de los bucles for, sin embargo tienen diferencia en sus sintaxis ya que el bucle while no tiene en su primera línea la capacidad de inicializar una variable, verificar su condición y finalmente aumentar o decrementar esta variable. El bucle while únicamente evaluará una condición, si es verdadera ejecutará el bloque de código que contiene las veces que nosotros deseemos o necesitemos, y si es falsa su condición sencillamente no entrará en la estructura del ciclo while. Continúa leyendo para que conozcas mejor esta estructura.
¿Qué es el bucle while (o mientras) en PHP?
A menudo, cuando escribe código, quiere que el mismo bloque de código se ejecute una y otra vez en una fila. En lugar de agregar varias líneas de código casi iguales en un script, podemos usar loops para realizar una tarea como esta.
En PHP, la función de un ciclo while es hacer una tarea, una y otra vez, siempre que la instrucción condicional especificada sea verdadera. Entonces podemos decir que en este caso PHP ejecuta un bloque de código mientras que la condición se cumpla en el tiempo.
Los bucles while son bloques simples que se ejecutan repetidamente hasta que deje de cumplirse su condición.
Esta es su sintaxis básica:
while (condición) { //El programa se ejecutará si la condición es verdadera; }
Aquí hay un ejemplo de un ciclo que se ejecuta un total de 10 veces:
$contador = 0; while ($contador < 10) { $contadorr += 1; echo "Ejecutar contador es $contador. \n"; }
La diferencia principal entre los bucles for y los bucles while es que los bucles for se utilizan para iterar sobre una matriz o un objeto, y un bucle while se ejecutará una cantidad desconocida de veces, dependiendo de las condiciones variables (por ejemplo, hasta que un usuario haya ingresado entrada correcta).
Bucle do while
La estructura de control cíclica do-while de PHP te permite ejecutar un bloque de código repetidamente en función de una condición. A diferencia de la sentencia while , cuya condición se verifica al comienzo de cada iteración, la condición en la declaración do-while se verifica al final de cada iteración. Significa que el ciclo se ejecutará al menos una vez, incluso si se evalúa la condición como false (falsa).
Aquí te muestro la sintaxis básica de la estructura cíclica do-while:
<?php do { // bloque de código a ejecutarse } while (condicion); ?>
El ciclo do…while siempre ejecutará el bloque de código una vez, luego comprobará la condición y repetirá el ciclo mientras la condición especificada sea verdadera.
El siguiente ejemplo establece primero una variable $var a 1 ($var = 1). Entonces, el ciclo do while escribirá alguna salida, y luego incrementará la variable $var con 1 cada vez. Entonces la condición se comprueba (¿$var es menor que, o igual a 5?), Y el ciclo continuará ejecutándose mientras $var es menor o igual a 5:
Aquí te muestro el ejemplo:
<?php $var = 1; do { echo "El número es: $var \n"; $var++; } while ($var <= 5); ?>
Observa que en un ciclo do while la condición se prueba luego de ejecutar las instrucciones dentro del ciclo. Esto significa que el ciclo do while ejecutará sus declaraciones al menos una vez, incluso si la condición es falsa la primera vez.
Declaraciones de flujo
Los bucles se pueden controlar utilizando las sentencias break y continue, que son útiles en los bucles while. La instrucción break sale inmediatamente del bucle for en el medio del bloque, mientras que la instrucción continue vuelve a la parte superior del ciclo while, volviendo a verificar si también se cumple la condición del bucle.
Continue y break proporcionan control adicional sobre sus bucles manipulando el flujo de las iteraciones. Continue es el más agradable de los dos, ya que evita la iteración actual, o fluye a través de una pasada del ciclo, y simplemente le dice a PHP que vaya a la siguiente ronda del ciclo. Break proporciona un control más agresivo completando el salto del ciclo y el código que sigue al ciclo.
La declaración continue
continue se utiliza dentro de las estructuras iterativas para saltar el resto de la iteración actual del bucle y continuar la ejecución en la evaluación de la condición, para luego comenzar la siguiente iteración.
Usemos el ejemplo anterior, pero esta vez agreguemos un chequeo para ver si el número es par. Si es así, lo omitiremos, de modo que solo se imprimirán los números impares.
$contador = 0; while ($contador < 10) { $contador += 1; if ($contador % 2 == 0) { echo "Saltarse el número $contador porque es par.\n"; continue; } echo "Ejecutar - contador is $contador.\n"; }
La declaración break
La declaración break finaliza la ejecución de las estructuras for, foreach, while, do-while o switch que estén en curso.
La declaración break acepta un argumento numérico opcional que indica de cuántas estructuras anidadas circundantes se debe salir. El valor predeterminado es 1, es decir, solamente se sale de la estructura circundante inmediata.
Supongamos que queremos agregar otra prueba que compruebe si la variable del contador no es mayor que 8. Si es así, nos gustaría detener el ciclo. Esto hará que el número 9 no se imprima en este ejemplo.
$contador = 0; while ($contador < 10) { $contador += 1; if ($contador > 8) { echo "es mayor de 8, se detiene el bucle.\n"; break; } if ($contador % 2 == 0) { echo "Saltarse el número $contador porque es par.\n"; continue; } echo "Ejecutar - contador es $contador.\n"; }
Ejercicio propuesto
Utiliza un bucle while para imprimir todos los números impares de una matriz. Utiliza la sentencia continue para omitir bucles y evitar imprimir números pares.
Recuerda – necesitará usar la secuencia de caracteres `n al final de la sentencia echo para continuar con la siguiente línea.
Consejo: para comprobar si un número es par, compruebe si el número del módulo 2 es igual a cero ($número % 2 == 0).
<?php $numbers = [56, 65, 26, 86, 66, 34, 78, 74, 67, 18, 34, 73, 45, 67, 75, 10, 60, 80, 74, 16, 86, 34, 12, 23, 42, 72, 36, 3, 73, 9, 92, 81, 94, 54, 97, 74, 45, 55, 70, 94, 96, 81, 86, 86, 84, 4, 32, 8, 96, 86, 87, 18, 84, 87, 59, 48, 32, 90, 17, 22, 82, 79, 66, 28, 17, 14, 80, 83, 66, 36, 21, 89, 68, 2, 51, 65, 20, 87, 48, 5, 1, 16, 60, 53, 84, 90, 16, 2, 37, 73, 57, 70, 57, 69, 68, 1, 24, 40, 72, 97]; // Imprime los números impares aquí
Solución al ejercicio propuesto
$index = 0; while( $index < contador( $numeros ) ) { $numeros = $numeros[ $index ]; ++$index; if( $numero % 2 == 0 ) continue; echo "$numero\n"; } ?>
Salida en pantalla
65 67 73 45 67 75 23 3 73 9 81 97 45 55 81 87 87 59 17 79 17 83 21 89 51 65 87 5 1 53 37 73 57 57 69 1 97
Los bucles y estructuras de control que ofrece PHP son muy útiles, descubre que otras herramientas puedes utilizar en este lenguaje entrando a nuestro curso gratuito para Aprender PHP:
[…] Bucle while (bucle mientras) (AprenderPHP – Curso básico) […]