Bucle While
Parte de la sección Fundamentos del Journey de PHP de Coddy. Lección 48 de 71.
Si bien el bucle for funciona muy bien cuando conoces el número exacto de iteraciones, el bucle while es perfecto cuando quieres seguir iterando hasta que una condición se vuelva falsa.
Un bucle while comprueba su condición antes de cada iteración. Si la condición es verdadera, se ejecuta el código que contiene. Esto continúa hasta que la condición se vuelve falsa.
<?php
$count = 1;
while ($count <= 3) {
echo "Count: $count\n";
$count++;
}
?>Esto produce:
Count: 1
Count: 2
Count: 3El bucle comienza verificando si $count <= 3. Como es verdadero, el código se ejecuta e incrementa $count. Cuando $count alcanza 4, la condición falla y el bucle se detiene.
Importante: Siempre asegúrate de que algo dentro del bucle eventualmente haga que la condición sea falsa. De lo contrario, crearás un bucle infinito que nunca deja de ejecutarse.
<?php
$total = 0;
$num = 1;
while ($total < 10) {
$total += $num;
$num++;
}
echo $total;
?>Esto sigue sumando números hasta que el total alcance o exceda 10, luego imprime el valor final.
Desafío
FácilLee un entero único de la entrada que representa una suma objetivo.
Usa un bucle while para sumar números consecutivos comenzando desde 1 (1, 2, 3, 4, ...) hasta que el total alcance o exceda la suma objetivo.
Imprime el total final en la primera línea, y el último número que se añadió en la segunda línea.
Ejemplo 1:
Si la entrada es 10, la salida debería ser:
10
4(1 + 2 + 3 + 4 = 10, que alcanza el objetivo)
Ejemplo 2:
Si la entrada es 15, la salida debería ser:
15
5(1 + 2 + 3 + 4 + 5 = 15)
Ejemplo 3:
Si la entrada es 7, la salida debería ser:
10
4(1 + 2 + 3 + 4 = 10, que excede 7)
Pruébalo tú mismo
<?php
// Leer la suma objetivo
$target = intval(fgets(STDIN));
// Inicializar variables
$total = 0;
$num = 0;
// TODO: Escribe tu código aquí
// Usa un bucle while para sumar números consecutivos (1, 2, 3, ...)
// hasta que el total alcance o exceda el objetivo
// Salida del total final y el último número agregado
echo $total . "\n";
echo $num;
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple2Variables y tipos de datos
NúmerosCadenas y comillasBooleanosConvenciones de nombresRepaso: inicialización de variablesVariables vacíasConcatenación de cadenasObtener datos del usuarioConvertir a otros tipos5Lógica condicional
Sentencia ifIf - ElseEl operador ternarioOperador de coalescencia nulaSentencia switchRepaso - Tomar decisiones3Operadores básicos
Operadores aritméticosOperador móduloOperador de exponenciaciónAsignación combinadaIncremento/DecrementoPrecedencia de operadoresRepaso: cálculos simplesOperadores de cadenasPractica por tu cuenta: Compilador de PHP online