Diferencia entre revisiones de «Plantilla:ManuelRomero/PHP/EstructurasControlRepetitivo»
De WikiEducator
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
__NOTOC__ | __NOTOC__ | ||
+ | [[#Tabla de Contenidos|Índice de contenidos]] | ||
<div style="float:none; clear:none; margin:0 0.3em 0.5em 0; padding:0.5em 1.4em 0.8em 0;"> | <div style="float:none; clear:none; margin:0 0.3em 0.5em 0; padding:0.5em 1.4em 0.8em 0;"> | ||
<div id="toc" class="toc"> | <div id="toc" class="toc"> | ||
− | <div id="toctitle"> | + | <div id="toctitle"><h2> |
− | [[# | + | [[#Tabla de Contenidos|Índice de contenidos]]</h2>" |
</div> | </div> | ||
* [[#Introducción|1. Introducción]] | * [[#Introducción|1. Introducción]] | ||
Línea 163: | Línea 164: | ||
*Este tipo de bucle donde seguro que al menos se ejecuta un iteracción | *Este tipo de bucle donde seguro que al menos se ejecuta un iteracción | ||
*Respecto al anterior nos ahorra una comparación. | *Respecto al anterior nos ahorra una comparación. | ||
− | + | *La sintaxis de esta estructura es la siguiente: | |
− | * | + | <source lang=php> |
− | * | + | do { |
+ | //Acciones | ||
+ | }while (expresión_booleana); | ||
+ | </source> | ||
+ | {{MRM_Puntos clave| | ||
+ | *La condición va al final de la estructura | ||
+ | *Observa que lleva un punto y coma al final | ||
+ | *El conjunto de las instrucciones del bloque se ejecuta al menos una vez | ||
+ | *El bloque se ejecuta '''mientras se cumpla la condición''' | ||
}} | }} | ||
− | {{MRM_Actividad|Title= | + | |
− | ; | + | {{MRM_Actividad|Title=Ejemplo de uso| |
− | + | ;Generar un número hasta que salga el 13 | |
− | + | ;mostrar las veces que hemos tenido que generar número | |
− | {{Plegable|hide| | + | {{Plegable|hide|buscando un número| |
<source lang=php> | <source lang=php> | ||
+ | <?php | ||
+ | $contador =1; | ||
+ | do{ | ||
+ | $num=rand(1,100); | ||
+ | $contador++; | ||
+ | }while($num!=13); | ||
− | + | echo "<h1>Hemos tirado $contador veces</h1>"; | |
+ | ?> | ||
</source> | </source> | ||
− | |||
}} | }} | ||
}} | }} | ||
+ | ;Ejercicios | ||
+ | {{MRM_Actividad|Title=Usando do-while| | ||
+ | *Modifica el ejercicio anterior usando un do-wile | ||
+ | *En este caso el número 13 también queremos que forme parte de la lista y se incluya tanto en la suma como en la contabilización, | ||
+ | }} | ||
+ | |||
+ | {{Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/Bonoloto}} | ||
+ | |||
{{MRM_Actividad|Title=Generar tabla ascii| | {{MRM_Actividad|Title=Generar tabla ascii| |
Última revisión de 18:35 25 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.
- La sintaxis de esta estructura es la siguiente:
do { //Acciones }while (expresión_booleana);
|
- Ejercicios
Ejercicio 19: Genera Números de Bonoloto
|
}}
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>"; } ?>