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 while loop verifica su condición antes de cada iteración. Si la condición es verdadera, el código dentro se ejecuta. 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)
Hoja de referencia
Un while bucle verifica una condición antes de cada iteración y continúa ejecutándose hasta que la condición se vuelve falsa.
Sintaxis básica:
<?php
$count = 1;
while ($count <= 3) {
echo "Count: $count\n";
$count++;
}
?>El bucle verifica si $count <= 3 antes de cada iteración. Cuando la condición se vuelve falsa, el bucle se detiene.
Importante: Siempre asegúrate de que algo dentro del bucle eventualmente haga que la condición sea falsa para evitar bucles infinitos.
Ejemplo con acumulación:
<?php
$total = 0;
$num = 1;
while ($total < 10) {
$total += $num;
$num++;
}
echo $total;
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators