PHP y MySQL Indice: Switch Bucles For While do...while
Switch switch...case es otra opción para trabajar con condiciones. Y suplanta al if, cuando lo único que se quiere hacer es comparar si son iguales las variables. Veamos un ejemplo de como se usa: Ejemplo con un IF: if($dia == lunes ){ Echo 'hoy es lunes'; elseif($dia == 'martes'){ elseif($dia == 'miercoles'){ elseif($dia == 'jueves'){ elseif($dia == 'viernes'){ elseif($dia == 'sabado'){ elseif($dia == 'domingo'){ Else Echo ' ese día no existe'; Veamos el mismo ejemplo pero con swich...
Ejemplo con swich: $dia = 'martes'; switch($dia){ case 'lunes': echo ( Es el día Lunes ); case 'martes: echo ( Es el día Martes ); case 'miercoles': echo ( Es el día Miercoles ); case 'jueves': echo ( Es el día Jueves ); case 'viernes': echo ( Es el día viernes ); case 'sabado': echo ( Es el día Sabado ); Break case 'domingo': echo ( Es el día domingo ); default: echo ( Es el día de la nada ); ;
En el ejemplo anterior podemos observar que primero lo hacemos con un if, en éste caso la sintaxis de comparación entre variables ya es más larga que en la que usamos en swich...se define una variable con una palabra. Dicha palabra es el día que queremos elegír. Después ponemos switch con la variable que queremos evaluar. Dentro del mismo existen varios casos. Se evalúa caso por caso y una vez que uno sea cierto, entra para ejecutar el bloque, al terminar se debe de colocar un para que la ejecución no siga con los otros casos. La opción default sería parecido que else en un condicional if. Si ninguno de los casos son verdaderos entonces toma el default que está al final y después sale con el. En swich, el siempre tiene que estar dentro del bloque, o de lo contrario el swich seguira ejecutando hasta encontrarlo. Mirar bien la sintaxis ya que no usa llave para diferenciar un bloque sólo dos puntos. La opción default es al final para evaluar si ningún caso fue concretado.pueden ser comparadas las variables de tipo string, entero o float. No así los array u objetos. BUCLES Los bucles son estructuras de control que permiten que una secuencia determinada de instrucciones, conocida genéricamente como cuerpo del bucle, se ejecute más de una vez. La estructura for() está definida mediante una variable de control que es la encargada de determinar el número de iteraciones. For (expr1;expr2;expr3) Sentencia La primera expresión se evalúa una sola vez al comienzo del bucle. La segunda es evaluada en el comienzo de cada iteración si es TRUE. Al finalizar cada iteración, la expr3 es evaluada.
Sintaxis: For (inicio; condición; paso) { Cuerpo del bucle; Ejemplo: for ($varcon=1;$varcon <=10; $varcon ++) { echo ($varcon."<br>"); Muestra: 1 2 3... 8 9 10 Se puede utilizar la variable de control como índice de una matriz. Ejemplo: $nombre=array ("pedro","ismael","soña","clara","susana","alfonso","teresa"); $elementos = count($nombre); for ($varcon=0; $varcon<$elementos;$varcon ++) { echo ($nombre[$varcon]."<br>");
Podemos tomar este ejemplo para un mejor entendimiento: <?php echo 'primer ejemplo'; for ($x=1; ;$x++){ if ($x > 10){ ; echo $x; echo "\n\n segundo ejemplo"; $x =1; for( ; ; ){ if($x > 10 ){ ; echo $x; $x++;?> echo "\n\n ultimo ejemplo"; for($x=1,$j=0; $x<=10; $j += $x, print $x, $x++); Miren el segundo ejemplo como se arma con el condicional. Luego piensen en el último.
Anidamientos de bucles Consiste en meter un bucle dentro de otro, de forma que para cada iteración del bucle externo, el bucle interno se ejecuta en toda sus iteraciones. Ejemplo: for ($piso=1; $piso <=5; $piso ++) { for($puerta=1; $puerta<=4; $puerta ++){ echo ("piso: $piso. - puerta : $puerta.<br>"); Es común usar el for para recorrer una matriz: Ejemplo: $dias = array( lunes, martes, miercoles, jueves, viernes ); For($x=0; $x<count($dias);++$x){ Echo $dias[$x]. <br> ; Con matrices mixtas: $nombres = array( miguel, juan, tito ); $empleados = array( nombre =>$nombres); for($x=0;$x<count($nombres);++$x){ Echo $empleados[ nombre ][$x];
Bucles mediante una condición no numérica Estos tipos de bucle se basan en la estructura while, que permite que un bucle itere mientras la expresión sea TRUE. El valor se verifica en cada inicio del bucle. While (condición) { Cuerpo del bucle Ejemplo: $ciudades= array ("madrid", "barcelona", "londres","new york", "los angeles","chicago"); $ciudad= ""; $indice=0; while ($ciudad!= "londres"){ $ciudad=$ciudades [$indice]; echo ($ciudad."<br>"); $indice++; echo ("final de la ejecucion"); Si la expresión es evaluada como FALSE entonces la misma no se ejecuta ni una vez. Ejemplo: $ciudades= array ("madrid", "barcelona", "londres","new york", "los angeles","chicago"); $ciudad= "madrid"; $indice=0; while ($ciudad!= "madrid"){ //Ponemos la primer ciudad. $ciudad=$ciudades [$indice]; echo ($ciudad."<br>"); $indice++; echo ("final de la ejecucion");
La sentencia do() while() Evalua la condición después del cuerpo del bucle en lugar de hacerlo antes. Digamos, sea la expresión evaluada FALSE igual se ejecuta al menos una vez.ejemplo: $ciudades= array ("madrid", "barcelona", "londres","new york", "los angeles","chicago"); $ciudad= "madrid"; $indice=0; do { $ciudad=$ciudades [$indice]; echo ($ciudad."<br>"); $indice++; while ($ciudad!= "madrid"); echo ("final de la ejecución"); El bucle foreach Este bucle nos facilita el recorrido de un array sin gestionar una variable que actúe como índice para dicho recorrido. Se introdujo en PHP4, sólo para recorrer array. Sintaxis: foreach($array as $valor){ Echo $valor; O también podemos usar con array asociativos: Foreach($matriz as $clave => $valor) { Cuerpo del bucle; Esto funciona tanto para array asociativas como para indexadas.
Ejemplo: $ciudades= array ("madrid", "barcelona", "londres","new york", "los angeles","chicago"); foreach ($ciudades as $clave => $valor) { echo ("la ciudad con el indice $clave tiene el nombre $valor. <br>"); echo ("final de la ejecución"); También es posible iterar objetos a partir de PHP5. Ejercicios: Switch: 1) Crerar al menos 5 empleados con sus respectivos sueldos. Según el empleado asociado a una variable $empleado, nos muestre su respectivo sueldo. 2)Crear una calculadora. Dependiendo de si elegimos suma, resta, etc se haga la operación especificada y nos devuelva el resultado. for: 1)crear una matriz asociativa donde nombre vaa ser la clave de un vector con 3 nombres, telefono va a ser la clave de un vector con 3 teléfonos y email va a ser clave de un vector con 3 emails. Mostrárme los datos en una tabla html ordenadamente según su clave. 2)crear una lista con las posibles combinaciones que puede tener la palabra otorrinolaringologia. While y Do-while:: 1) Mostrar la tabla de multiplicar del 2. 2) Escribir los números del 100 al 0.