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 13:49 23 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>"; } ?>