|
|
Línea 112: |
Línea 112: |
| *Esta estructura estáindicada cuanto tengamos más de dos casos ante una variable o situación que evaluemos excluyentes entre sí. | | *Esta estructura estáindicada cuanto tengamos más de dos casos ante una variable o situación que evaluemos excluyentes entre sí. |
| </div> | | </div> |
| + | *La sintaxis de esta estructura de control es |
| + | <source lang=php> |
| + | switch ($valor){ |
| + | case: "valor1": |
| + | acciones |
| + | break; |
| + | |
| + | </source> |
| | | |
| <div class="slide"> | | <div class="slide"> |
Línea 117: |
Línea 125: |
| {{MRM_Ejemplo|Title=uso de switch| | | {{MRM_Ejemplo|Title=uso de switch| |
| *Hacer un programa que nos muestre si un nombre es María, Pedro, o no es ninguno de ellos | | *Hacer un programa que nos muestre si un nombre es María, Pedro, o no es ninguno de ellos |
− | <!--
| + | |
| {{Plegable|hide|Posible solución| | | {{Plegable|hide|Posible solución| |
| <source lang=php> | | <source lang=php> |
Línea 134: |
Línea 142: |
| </source> | | </source> |
| }} | | }} |
− | -->
| + | |
| {{MRM_Actividad|Title=Generar mes y mostrar número de días| | | {{MRM_Actividad|Title=Generar mes y mostrar número de días| |
| *Hacer un programa que muestre el número de días que tiene un més | | *Hacer un programa que muestre el número de días que tiene un més |
Línea 140: |
Línea 148: |
| *El programa me mostrará el número de días y si el mes no es correcto me informará de ello | | *El programa me mostrará el número de días y si el mes no es correcto me informará de ello |
| | | |
− | <!--
| + | |
| {{Plegable|hide|Posible solución| | | {{Plegable|hide|Posible solución| |
| | | |
Línea 176: |
Línea 184: |
| ?> | | ?> |
| }} | | }} |
− | -->
| + | |
| }} | | }} |
| | | |
Revisión de 20:08 5 oct 2020
Estructuras de control
- Determinan el flujo de ejecución de un programa
- Tenemos tres estructuras de control
- Veremos cómo se implementan en PHP
|
Estructuras de control 1
A continuación veremos las estructuras de control
Son de tres tipos
- Selección
- Iteracción
- Secuenciales
- Para construirlas necesitamos operadores
Selección if
- Sentencia que evlúa una expresión booleana y ejecuta o no en función de que dicha expresión sea true o false
if (condicion)
Sentencia 1;
if (condicion){
Sentencia_1;
Sentencia_2;
}
- Sentencias de control
if (expresion)
Sentencia_1;
else
Sentencia_2;
</source>
- También existe la opción elseif donde aportaremos una condición que se ha de cumplir para que se ejecuten las sentencias que a continuación acompañan.
- Estructura de control
if (expresion){
sentencias;
}
elseif (expresion){
sentencias;
}
else{
sentencias;
}
- Alternativamente puede usarse esta sintaxis que es usada cuando se quiere intercalar condigo html fuera del php.
- También se puede usar la sintaxis vista anteriormente, pero parece que esta quede más compacta.
if (condicion):
Sentencia 1;
endif;
- Ahora lo vemos con código html
<?php if (true): ?>
<h1>Esta frase seguro que aparece ahor</h1>
<!--escribirmos código html -->
<?php else: ?>
<h1>Aquí escribiré poco ya que no va a aparecer nada</h1>
<!--escribimos código html -->
<?php endif ?>
Operadores ternario
- Es una forma más compacta de un if else con una única instrucción.
Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
Actividad
Programa que me dé si un número aleatorio es par o impar!
Programa par o impar |
---|
<?php
$num= rand(1,100);
echo ($num%2==0)? "$num es par" : "$num es impar";
?>
|
|
Seleccion switch
- Este es un selector múltiple.
- La sentencia case en php puede albergar cualquier valor de un tipo simple, no está limitado a enteros como en otros lenguajes
- Esta estructura estáindicada cuanto tengamos más de dos casos ante una variable o situación que evaluemos excluyentes entre sí.
- La sintaxis de esta estructura de control es
switch ($valor){
case: "valor1":
acciones
break;
- Switch
{{MRM_Ejemplo|Title=uso de switch|
- Hacer un programa que nos muestre si un nombre es María, Pedro, o no es ninguno de ellos
Posible solución |
---|
<?php
switch ($nombre){
case "Maria":
echo "eres una chica";
break;
case "Pedro";
echo "eres una chico";
break;
default:
echo "no se qué nombre tienes";
}
?>
|
Generar mes y mostrar número de días
- Hacer un programa que muestre el número de días que tiene un més
- El número de mes se obtendrá en un valor aleatorio entre 1 y 15
- El programa me mostrará el número de días y si el mes no es correcto me informará de ello
Posible solución |
---|
<?php
//Generamos un número de mes
$mes = rand(1, 20);
//Evaluamos en número de días del mes generado
switch ($mes) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
echo "$mes, mes de 31 días";
break;
case 4:
case 6:
case 10:
case 11:
echo "$mes, mes de 30 días";
break;
case 2:
echo "$mes, mes de 29 o 28 días";
break;
default:
echo "$mes, mes incorrecto ";
}
?>
}}
}}
</div>
<div class="slide">
===Iteración while===
*Como en todos los bucles debemos siempre tener encuenta
#inicializar la variable de control
#actualizarla correctamente dentro del bucle
#realizar de forma correcta la evaluación de condición (< o <=), (> o >=), ...
{{MRM_Actividad|Title=Uso de while|
*Mostrar la suma de los primeros 100 números naturales
*Se quiere ver el número de iteración y la suma hasta ese momento (Es decir queremos ver cien líneas)
*Cada iteración que aparezca en numeración ordinal en símbolo 1ª , 2ª, ...
<!--
{{Plegable|hide|Posible solución|
<source lang=php>
<?php
$i = 0;
while ($i < 100) {
$suma+=$i;
$i++;
echo "iteracción {$i}ª Suma $suma<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.
Usando do-while
- Modifica el ejercicio anterior usando un do-wile
|
Iteración for
- Es un bucle de tipo contador
for (expresion_inicial; condicion;expresion_actualizar){
sentencias;
}
- Estructura for
- 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
- Estructura for
- condición
<?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
<?php
for ($a=0;$a<10 ;$a++){
echo "$a*$a=".$a*$a."<br>";
}
?>