Diferencia entre revisiones de «Plantilla:PHP/EstructurasControl»

De WikiEducator
Saltar a: navegación, buscar
(Operadores ternario)
(Seleccion switch)
Línea 131: Línea 131:
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?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
 
//Generamos un número de mes
Línea 150: Línea 145:
 
     case 10:
 
     case 10:
 
     case 12:
 
     case 12:
         $msj = "$mes, mes de 31 días";
+
         echo "$mes, mes de 31 días";
 
         break;
 
         break;
  
Línea 157: Línea 152:
 
     case 10:
 
     case 10:
 
     case 11:
 
     case 11:
         $msj = "$mes, mes de 30 días";
+
         echo "$mes, mes de 30 días";
 
         break;
 
         break;
 
     case 2:
 
     case 2:
         $msj = "$mes, mes de 29 o 28 días";
+
         echo "$mes, mes de 29 o 28 días";
 
         break;
 
         break;
 
     default:
 
     default:
         $msj = "$mes, mes incorrecto ";
+
         echo "$mes, mes incorrecto ";
 
}
 
}
 
?>
 
?>
<!doctype html>
 
<html lang="en">
 
    <head>
 
        <meta charset="UTF-8">
 
        <title>Document</title>
 
    </head>
 
    <body>
 
        <h1><?= "$msj" ?></h1>
 
 
    </body>
 
</html>
 
</source>
 
 
}}
 
}}
  

Revisión de 09:24 5 oct 2020

Estructuras de control

Icon objectives.jpg
Objetivo
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

  1. Selección
  2. Iteracción
  3. 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


Icon activity.jpg
Actividad
Programa que me dé si un número aleatorio es par o impar!



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";
}
?>

{{MRM_Actividad|Title=Generar mes y mostrar número de días|

<?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 >=), ...
<source lang=php>
<?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>";
}
?>