Diferencia entre revisiones de «Plantilla:PHP/EstructurasControl»
De WikiEducator
Saltar a: navegación, buscar
(→Seleccion switch) |
(→Seleccion switch) |
||
Línea 115: | Línea 115: | ||
?> | ?> | ||
</source> | </source> | ||
− | {{MRM_Actividad|Title | + | {{MRM_Actividad|Title=Generar mes y mostrar número de días| |
<source lang=php> | <source lang=php> | ||
<?php | <?php |
Revisión de 20:17 1 oct 2019
Contenido
Estructuras de control
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
Seleccion switch
- Este es un selector múltiple
- La sentencia case puede albergar cualquier valor de un tipo simple, no está limitado a enteros como en otros lenguajes
- Estructura indicada cuanto tengamos más de dos casos ante una variable o situación que evaluemos excluyentes entre sí
- Switch
<?php switch ($nombre){ case "Maria": echo "eres una chica"; break; case "Pedro"; echo "eres una chico"; break; default: echo "no se qué nombre tienes"; } ?>
<?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ //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: $msj = "$mes, mes de 31 días"; break; case 4: case 6: case 10: case 11: $msj = "$mes, mes de 30 días"; break; case 2: $msj = "$mes, mes de 29 o 28 días"; break; default: $msj = "$mes, mes incorrecto "; } ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1><?= "$msj" ?></h1> </body> </html>
|
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 >=), ...
<?php $i = 1; while ($i <= 10) { echo "iteracción número ."$i++; } ?>
- Alternativamente podemos usar la siguiente sintaxis
$i = 1; while ($i <= 10): $i++; echo "iteracción número ."$i; endwhile; ?>
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.
<?php $num=10; $resultado=1; *Esta es la única sintaxis posible con este tipo de sentencia do { $resultado:=$resultado*$num; $num--; } while ($num>0); ?>
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
- 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
- El ejemplo anterior
<?php for ($a=0;$a<10 ;$a++){ echo "$a*$a=".$a*$a."<br>"; } ?>