Ejemplo 7: Recorrido de Números
Bucles for y búsqueda condicional en PHP
Descargar archivo recorrido_numeros🎯 Demo en Vivo
Recorrido del 0 al 10
¡Busca diferentes números!
Búsquedas rápidas:
🔍 Simulación de búsqueda:
📖 Explicación del Código
Código PHP Completo
<?php
for ($i = 0; $i <= 10; $i++) {
if ($i == 5) {
print($i);
}
}
?>
📝 Línea 1: Bucle for
for ($i = 0; $i <= 10; $i++) {
¿Qué hace? Crea un bucle que se ejecuta 11 veces, desde 0 hasta 10.
¿Por qué se hace así? El bucle for es ideal cuando sabemos exactamente cuántas veces necesitamos repetir el código.
💡 Concepto: Anatomía del bucle for
Inicialización: $i = 0 - Valor inicial
Condición: $i <= 10 - Mientras sea verdadera
Incremento: $i++ - Aumenta en 1 cada ciclo
📝 Líneas 2-4: Condición if
if ($i == 5) { print($i);}
¿Qué hace? Verifica si el número actual es igual a 5 y, si es así, lo imprime.
¿Por qué se hace así? Combina un bucle con una condición para buscar elementos específicos.
💡 Concepto: Búsqueda lineal
Este es un ejemplo simple de búsqueda lineal: revisamos cada elemento uno por uno hasta encontrar el objetivo.
📝 Flujo de ejecución paso a paso
$i = 0
$i <= 10?
$i++
🔄 Tipos de Bucles en PHP
Bucle for
for ($i = 0; $i < 10; $i++) {
// código
}
✅ Ideal para:
- Número conocido de iteraciones
- Recorrer arrays por índice
- Contadores y secuencias
Bucle while
$i = 0;
while ($i < 10) {
// código
$i++;
}
✅ Ideal para:
- Condiciones complejas
- Número desconocido de iteraciones
- Lectura de archivos/BD
Bucle foreach
foreach ($array as $valor) {
// código
}
✅ Ideal para:
- Recorrer arrays y objetos
- No necesitas el índice
- Código más limpio
➕ Operadores de Incremento/Decremento
| Operador | Nombre | Ejemplo | Resultado |
|---|---|---|---|
$i++ |
Post-incremento | $a = $i++; |
$a = valor original, luego $i aumenta |
++$i |
Pre-incremento | $a = ++$i; |
$i aumenta, luego $a = nuevo valor |
$i-- |
Post-decremento | $a = $i--; |
$a = valor original, luego $i disminuye |
--$i |
Pre-decremento | $a = --$i; |
$i disminuye, luego $a = nuevo valor |
🎯 Patrones Comunes con Bucles
Búsqueda lineal
foreach ($array as $elemento) {
if ($elemento == $objetivo) {
echo "Encontrado!";
break;
}
}
Recorrer una colección hasta encontrar un elemento.
Acumulación
$suma = 0;
for ($i = 1; $i <= 10; $i++) {
$suma += $i;
}
Acumular valores durante el recorrido.
Filtrado
$pares = [];
foreach ($numeros as $num) {
if ($num % 2 == 0) {
$pares[] = $num;
}
}
Crear nueva colección con elementos que cumplan condición.
🎯 Conceptos Clave Aprendidos
Bucle for
- Ideal para iteraciones contadas
- Tres partes: inicio, condición, incremento
- Muy eficiente para arrays indexados
- Control total del contador
Condiciones en bucles
- Pueden usar break para salir temprano
- Pueden usar continue para saltar iteración
- Combinan lógica con repetición
- Esenciales para búsquedas
Variables contador
$ies convención para índices- Debe inicializarse antes del bucle
- Se modifica en cada iteración
- Controla la finalización del bucle
💪 Ejercicio Práctico
Amplía el sistema de búsqueda
Practica estos cambios para mejorar tus habilidades:
- Modifica el código para buscar múltiples números a la vez
- Implementa un contador que muestre cuántos números son pares en el rango
- Crea un sistema que busque números primos en el rango 0-20
- Convierte el bucle for a while y viceversa para practicar
- Añade la funcionalidad de buscar en rangos personalizados (ej: 5-15)
Solución 1: Múltiples objetivos
<?php
$objetivos = [2, 5, 8];
$encontrados = [];
for ($i = 0; $i <= 10; $i++) {
if (in_array($i, $objetivos)) {
$encontrados[] = $i;
}
}
print_r($encontrados);
?>
Solución 2: Contador de pares
<?php
$pares = 0;
for ($i = 0; $i <= 10; $i++) {
if ($i % 2 == 0) {
$pares++;
}
}
echo "Números pares: $pares";
?>
Solución 3: Números primos
<?php
$primos = [];
for ($i = 2; $i <= 20; $i++) {
$esPrimo = true;
for ($j = 2; $j < $i; $j++) {
if ($i % $j == 0) {
$esPrimo = false;
break;
}
}
if ($esPrimo) {
$primos[] = $i;
}
}
print_r($primos);
?>
Solución 4: Con while
<?php
$i = 0;
while ($i <= 10) {
if ($i == 5) {
echo $i;
}
$i++;
}
?>
Solución 5: Rango personalizado
<?php
$inicio = 5;
$fin = 15;
$objetivo = 10;
for ($i = $inicio; $i <= $fin; $i++) {
if ($i == $objetivo) {
echo "Encontrado: $i";
break;
}
}
?>