Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/EstructurasControlRepetitivo»
De WikiEducator
Línea 73: | Línea 73: | ||
//establecemos el bucle con la condición de iteración | //establecemos el bucle con la condición de iteración | ||
while ($i < 25) { | while ($i < 25) { | ||
− | + | <?php | |
− | + | <?php | |
− | // | + | $contador = 0; |
+ | $suma =0; | ||
+ | |||
+ | while ($contador < 25) { | ||
+ | //mantenemos la informaicón para poder | ||
+ | // mostrar lo que estamos haciendo en cada interación | ||
+ | $suma_anterior = $suma; | ||
+ | |||
+ | //Actualizamos la suma | ||
+ | $suma = $suma_anterior+$contador; | ||
+ | |||
+ | |||
+ | echo "En la interación {$contador}ª: <span style='color:blue'>$suma_anterior + $contador = $suma</span><br />"; | ||
+ | //Muy importante actualizar la variable de control | ||
+ | //Lo he de hacer al final para que sume desde el 0 al 24 que son | ||
+ | //los primeros 25 números | ||
+ | $contador ++; | ||
+ | } | ||
+ | //Mostramos mensaje al final | ||
+ | echo "<h1> La suma total de los primeros 25 números es $suma</h1>"; | ||
+ | |||
+ | ?>?> | ||
} | } | ||
//Mostramos la suma total | //Mostramos la suma total | ||
Línea 90: | Línea 111: | ||
*Podría ser que el número nos salga el primero en cuyo caso no habrá ningún mensaje | *Podría ser que el número nos salga el primero en cuyo caso no habrá ningún mensaje | ||
*Mostramos cuantos números se han generado y la suma de los mismos | *Mostramos cuantos números se han generado y la suma de los mismos | ||
+ | {{Plegable|Hide|Posible solución| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | //Generamos un número aleatorio entre 1 y 15. | ||
+ | //Establecemso un contador | ||
+ | //para ver cuántas veces intermos | ||
+ | |||
+ | //Establemos el bucle | ||
+ | while ($num !=13){ | ||
+ | } | ||
+ | //Mostramos la información final | ||
+ | ?> | ||
+ | </source> | ||
+ | }} | ||
+ | <!-- | ||
+ | {{Plegable|Hide|Posible solución| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | //Generamos un número aleatorio entre 1 y 15. | ||
+ | $num = mt_rand(1,15); | ||
+ | //Establecemso un contador | ||
+ | //para ver cuántas veces intermos | ||
+ | $cont=1; | ||
+ | while ($num !=13){ | ||
+ | //actualizamos el contador | ||
+ | $cont++; | ||
+ | //mostramos el número | ||
+ | echo "<h1>El numero es $num</h1>"; | ||
+ | //actualizamos el número | ||
+ | $num = mt_rand(1,15); | ||
+ | } | ||
+ | //Mostramos la información final | ||
+ | echo "<h1>Por fin el 13 en $cont veces</h1>"; | ||
+ | ?> | ||
+ | </source> | ||
+ | }} | ||
+ | --> | ||
}} | }} | ||
Revisión de 02:49 24 nov 2024
Introducción
En este tema aprenderemos tres estructuras de control que permiten repetir bloques de código:
- while: Repite un bloque mientras una condición sea verdadera.
- do...while: Similar al while, pero asegura que el bloque se ejecute al menos una vez.
- for: Útil cuando conocemos de antemano el número de iteraciones necesarias.
- Empecemos por la estructura while, explicando su funcionamiento básico y resolviendo ejercicios prácticos.
Iteración while
Un bucle while repite un bloque de código mientras una condición sea verdadera. Para evitar errores, debemos prestar atención a tres aspectos fundamentales:
- Inicializar la variable de control antes de entrar en el bucle.
- Actualizar la variable de control dentro del bucle para evitar bucles infinitos.
- Realizar correctamente la evaluación de la condición utilizando operadores de comparación (<, <= , >, >= , ...).
- Sintaxis
while (expresion_booleana){ //instrucciones del bloque }
//Inicializamos variables de la condición $contador = 0; //Establecemos la condición cuidando mucho //los extremos (< o <= ...) while ($contador < 10){ //Actualizamos la variable dentro del bucle $contador ++ //comentar este operador //Realizamos las acciones echo "Estoy en la interación $contador<br />" }
|
|
Iteracción do-while
- Este tipo de bucle donde seguro que al menos se ejecuta un iteracción
- Respecto al anterior nos ahorra una comparación.
}}
Iteración for
- Es un bucle de tipo contador
for (expresion_inicial; condicion;expresion_actualizar){ sentencias; }
- Estructura for
- tiene tres partes
- expresion_inicial
- Se ejecuta una sola vez al comienzo del bucle. se usa para inicializar variables
- condición
- Es una expresión booleana que se evalúa en cada interacción
- Si da un valor false, ya no se ejecuta ninguna vez
- Si no hay expresión se toma como true
- En este caso para que el bucle no sea infinito deberá llevar algún break (instrucción de terminación de bloque) en algún momento
- Incremento de la expresión inicial
- Marca el paso o cómo se va modificando la variable de control en cada iteración
- Estructura for
- condición
<?php for ($a=0; ;$a++){ echo "$a*$a=".$a*$a."<br>"; } ?>
- Es como si dentro del bucle establecemos la condición de terminación usando la instrucción de terminación de bloque break
- Observa el siguiente código forzado y compáralo con el anterior (mira que la sección de condición está vacía)
<?php for ($a=0; ;$a++){ echo "$a*$a=".$a*$a."<br>"; if ($a==10) break; } ?>
- Estructura for
- expresion_actualizar
- Esta expresión actualiza el valor de alguna/as variables
- Se ejecuta en cada interactivo
- El ejemplo anterior
<?php for ($a=0;$a<10 ;$a++){ echo "$a*$a=".($a*$a)."<br>"; } ?>