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

0
1
2
3
4
5
🎯
6
7
8
9
10
Números recorridos: 11
Objetivo buscado: 5
Veces encontrado: 1

¡Busca diferentes números!

Buscaremos este número en el rango 0-10

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

1
Inicialización: $i = 0
2
Verificación: ¿$i <= 10?
3
Ejecución: Cuerpo del bucle (condición if)
4
Incremento: $i++
5
Repetición: Volver al paso 2 hasta que la condición sea falsa

🔄 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

  • $i es 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:

  1. Modifica el código para buscar múltiples números a la vez
  2. Implementa un contador que muestre cuántos números son pares en el rango
  3. Crea un sistema que busque números primos en el rango 0-20
  4. Convierte el bucle for a while y viceversa para practicar
  5. 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;
    }
}
?>