You are on page 1of 8

PROGRAMACIN EN PHP

19
Xavier Vistn
SWITCH...CASE
En el tema anterior estudiamos cmo realizar diferentes acciones tomando en cuenta
diferentes condiciones. Sin embargo, algunas veces la sentencia if no es la forma ms
eficiente de realizar esta labor.
Por ejemplo, imagine que disponemos de 30 posibles localidades para viajar y tenemos una
variable que almacena a cul de esos sitios se viajar. Tomar la decisin usando bloques de
if...elseif...else no sera lo ms eficiente ni lo ms simple; el programa tendra que evaluar
una por una todas las condiciones hasta encontrar la que se cumple. Y si las localidades
cambian a 100? Sera una locura implementarlo de esa manera, tanto por el rendimiento de
la aplicacin como por la complejidad del cdigo.
Usando la instruccin switch podemos evaluar todas esas condiciones de una sola vez; es, de
hecho, la forma ms eficiente de llevar a cabo esta tarea.
La sentencia switch toma una variable como entrada y luego la evala contra todos los
diferentes casos que se hayan definido. As, en lugar de tener que evaluar cada condicin una
por una, se evala la condicin una sola vez.
Sintaxis:
switch ($expresion)
{
case val1:
// instrucciones que se ejecutan si $expresion == val1;
break;
case val2:


PROGRAMACIN EN PHP
20
Xavier Vistn
// instrucciones que se ejecutan si $expresion == val2;
break;
case valn:
// instrucciones que se ejecutan si $expresion == valn;
break;
... default:
// instrucciones que se ejecutan si $expresion es
// distinto de todos los valores listados arriba
}

Donde val1, val2, ... , valn representan los posibles valores que puede tomar la variable
$expresion. Si el valor de $ expresion no satisface ninguno de los casos listados entonces
se ejecuta el cdigo de la seccin default.
Nota: La sentencia switch se usa para evitar largos e ineficientes bloques de instrucciones
if..elseif..else.
Cdigo PHP:
<?php

$x=0;


PROGRAMACIN EN PHP
21
Xavier Vistn

switch ($x) {
case 1:
echo "Nmero 1";
break;
case 2:
echo "Nmero 2";
break;
case 3:
echo "Nmero 3";
break;
default:
echo "Nmero que no est entre 1 y 3";
}
?>
Salida:
Nmero que no est entre 1 y 3



PROGRAMACIN EN PHP
22
Xavier Vistn
WHILE
La sentencia while le dice a PHP que ejecute un conjunto de instrucciones repetidamente
mientras la expresin indicada se evale como TRUE. El valor de la expresin es
comprobado al inicio de cada iteracin.
Sintaxis:
while (condicion){
// instrucciones a ejecutar
}
Al igual que en la sentencia if, si en el while se va a ejecutar ms de una instruccin entonces
stas deben ir encerradas entre llaves para indicar el principio y el fin del bloque.
Nota: Es necesario comprobar que el valor de la expresin cambia durante la ejecucin
del bucle; de lo contrario ste se repetir infinitas veces (bucle infinito) haciendo que la
aplicacin se estanque en esa seccin del cdigo para siempre.
Ejemplo:
<?php
$i=1;
while($i<=5) {
echo "El nmero es ".$i."<br/>";
$i++; // Aqu se modifica el valor de la expresin
}
?>


PROGRAMACIN EN PHP
23
Xavier Vistn
Salida:
El nmero es 1
El nmero es 2
El nmero es 3
El nmero es 4
El nmero es 5

Do...while
Los bucles do...while son similares a los bucles while, excepto que las condiciones se
comprueban al final de cada iteracin y no al principio.

Sintaxis:

do {
// instrucciones a ejecutar
}
while (condicion);



PROGRAMACIN EN PHP
24
Xavier Vistn
La principal diferencia del do...while es que garantiza la ejecucin del cdigo al menos una
vez (la condicin se comprueba al final de la iteracin luego de ejecutar el cdigo), mientras
que con el while puede que el cdigo nunca se ejecute porque la condicin se comprueba al
principio de cada iteracin (justo antes de ejecutar el cdigo).

Nota: Los bucles do...while garantizan la ejecucin del cdigo al menos una vez, mientras
que con los while el cdigo puede que nunca se ejecute.

Ejemplo con while()
<?php
$i=1;
while($i < 0) {
echo "Este texto nunca se mostrar<br/>";
$i++;
}
echo Salida del bucle;
?> Salida:
Salida del bucle

Ejemplo con do...while()


PROGRAMACIN EN PHP
25
Xavier Vistn
<?php
$i=1;
do{
echo "Este texto si que se mostrar<br/>";
$i++;
} while($i < 0);
echo Salida del bucle;
?>
Salida:
Este texto si que se mostrar
Salida del bucle

FOR
La sentencia for tambin ejecuta un cdigo repetidas veces, pero se utiliza principalmente
cuando se conoce el nmero exacto de iteraciones que se desean realizar.
Esta sentencia utiliza tres parmetros. El primer parmetro inicializa la variable a evaluar,
el segundo almacena la condicin que se debe cumplir para que se ejecute el bucle (TRUE
o FALSE) y el tercero representa el incremento que se aplicar a la variable en cada iteracin
del bucle.
Sintaxis:


PROGRAMACIN EN PHP
26
Xavier Vistn
for (inicializacin; condicin; incremento){
// instrucciones a ejecutar
}

Ejemplo:
<?php
for($i=0; $i <= 5; $i++) {
echo "El nmero es ".$i."<br/>";
}
?>
Salida:
El nmero es 0
El nmero es 1
El nmero es 2
El nmero es 3
El nmero es 4
El nmero es 5
Nota: Con la sentencia for no es necesario que se modifique el valor de la variable de
control dentro del bucle porque la instruccin lo hace automticamente al final de cada
iteracin.

You might also like