Control de proceso
- if
Volvemos de nuevo sobre la instrucción lógica if (si, traducido al castellano), que permite tomar decisiones sobre lo que debe hacer un programa en determinadas circunstancias. Veamos su estructura y un ejemplo práctico:
Estructura:
if ( condición ) { órdenes }
// Si se cumple la condición se ejecutarán estas órdenes.
elseif ( condición ) { órdenes }
// Si no se cumple la condición anterior pero se cumple ésta, se
ejecutarán estas órdenes.
else { órdenes }
// Si no se cumple ninguna condición se ejecutarán estas órdenes.
Ejemplo:
<?php $a = 5; $b = 3; if ($a < $b) { echo 'A es menor que B'; } elseif ($a > $b) { echo 'A es mayor que B'; } else { echo 'A es igual que B'; } ?>
Recomendamos probar con distintos valores de $a y $b para verificar cómo funciona la lógica del if.
- switch
Cuando se quiere decidir qué hacer según los distintos valores de un campo, entonces se puede utilizar la instrucción switch (conmutador, en castellano), para obtener un código más estructurado y comprensible.
Tras la/s órdene/s de se utiliza la instrucción break (interrumpir, en castellano) para saltar el flujo de ejecución a la siguiente instrucción tras el switch, pues en caso de no usarla se evaluarían todas las condiciones y se harían todas las órdenes de las condiciones que se cumplieran. La instrucción break reduce el tiempo de ejecución, al evitar que se tengan que efectuar todas las preguntas. Veamos su estructura y un ejemplo práctico:
Estructura:
switch ( $campo )
{
case valor1 : órdenes break;
case valor2 : órdenes break;
case valorN : órdenes break;
default : órdenes
}
Ejemplo:
<?php $a = 'arriba'; switch ($a) { case 'hola' : echo 'Estoy saludando'; break; case 'adios' : echo 'Me despido'; break; case 'arriba' : echo 'Estoy subiendo'; break; default : echo 'Estoy parado'; } ?>
Recomendamos probar los valores previstos para $a y también otros no previstos para verificar como funciona la lógica del switch.
Bucles
Un bucle es un bloque de instrucciones que se ejecuta repetidamente (al llegar al final vuelve al principio), mientras se cumple una condición de control, y finaliza el bucle cuando esta condición no se cumple.
- while
Es la estructura típica de un bucle, donde puede haber una condición o varias para finalizar y también puede haber varias instrucciones a ejecutar dentro del bucle.
Existe una variante de while llamada do ... while , pero no la veremos en este curso.
Dentro del bucle se utiliza la instrucción break (comentada antes), para salir del bucle, y la instrucción continue (continuar en castellano) que hace que el flujo de ejecución vuelva de nuevo al principio del bloque. Ambas simplifican la cantidad de código necesario. Veamos su estructura y un ejemplo práctico:
Estructura:
while ( condición )
{
orden1 ;
if (condición1) { break; }
if (condición2) { continue; }
orden2 ;
ordenN ;
}
Ejemplo:
<?php $a = 'hola'; while ($a != 'adios') { echo 'Entra: ' . $a . '<br>'; // Escribimos el campo al principio if ($a == 'hola') { $a = 'arriba'; continue; } if ($a == 'arriba') { $a = 'abajo'; } else { $a = 'adios'; } } ?>
Como se puede observar la palabra 'adios' no aparecerá en los mensajes escritos en la pantalla, eso se debe a que es el valor que interrumpe la ejecución del bucle.
- for
Es una estructura típica de bucle de conteo numérico. Puede tener una condición de finalización o varias y puede haber varias instrucciones para ejecutar dentro del bucle.
Existe una variante de for llamada foreach , que es para tratamiento de matrices y se estudiará más adelante.
Dentro del bucle se utilizan las instrucciones break y continue (ya comentada antes).
Estructura:
for ( valor de inicio ; condición ;
incremento )
{
orden1 ;
if (condición1) { break; }
if (condición2) { continue; }
orden2 ;
ordenN ;
}
Ejemplo:
<?php for ($contador = 0; $contador <= 100; $contador = $contador + 5) { echo 'Valor: ' . $contador . '<br>'; } ?>
En pantalla se verán valores incrementados de 5 en 5.