TEMA 3 - PHP A FONDO

Estado
Cerrado para nuevas respuestas

rob1104

Super Moderador
Super Moderador
#1
TEMA 3 - PHP A FONDO

LECCION 4: BUCLES

Vaya, como pasa el tiempo, jeje estas demoras son porque estoy en exámenes (lo bueno es que es 5 días cada 2 meses).

Venga para mas que ya vamos a terminar el tema 3, y al final daremos una repasada para que no se nos olvide esto de la programación lógica. Recuerden que todo lo visto en el tema 3 aplica para cualquier lenguaje, solo varia un poco la sintaxis, pero en el fondo es lo mismo, y dominar una buena lógica significa un mejor rendimiento en el programa y una optimización de código.

BUCLES.

¿Qué es un bucle?, pues bien, un bucle o ciclo es, como su nombre lo dice, una repetición de código, es decir, podemos repetir un trozo de código un numero ya sea indefinido o definido de veces, ¿y esto para qué?, pues bien, más que nada para ahorrar código y no escribir lo mismo una y otra vez. Sinceramente esto no se usa mucho en la programación web, excepto en base de datos y algúnos juegos, pero nunca está de más saberlo... :D…

En PHP existen cuatro tipos de bucles, de los cuales vamos a ver 3, (dejaremos uno para el siguiente tema cuando veamos algo sobre arreglos :D):

while

do while

for


WHILE

Los bucles while son los tipos de bucle más simples en PHP. La forma básica de una sentencia while es:

Insertar CODE, HTML o PHP:
while (condición)

{

 * * Código

}
Y eso.. ¿en español? Jeje pues bien como ya se pudieron haber imaginado, todo el código que este entre los corchetes { } se ejecutará mientras la condición sea verdadera.

¿Como funciona el while exactamente?:

Muy simple. While le dice a PHP que ejecute la(s) sentencia(s) anidada(s) repetidamente, mientras la expresión while se evalúe como TRUE. El valor de la expresión es comprobado cada vez al principio del bucle, así que incluso si este valor cambia durante la ejecución de la(s) sentencia(s) anidada(s), la ejecución no parará hasta el fin de la iteración (cada vez que PHP ejecuta las sentencias en el bucle es una iteración). Si la expresión while se evalúa como FALSE desde el principio de todo, la(s) sentencia(s) anidada(s) no se ejecutarán ni siquiera una vez.

Eso es muy interesante, sobre todo si tomamos en cuenta que como en el caso de if, también podemos añadir mas while dentro de otros while

Insertar CODE, HTML o PHP:
while(condición)

{

 * *código

 * *while(otroacondicion)

 * *{

 * * código

 * *}

}
Otra cosa interesante es que como mencioné, la condición se evaluea al principio del bucle, y esta puede cumplirse dentro del bucle o fuera del bucle (antes de que entre, en dado caso de que sea FALSA no se entra nunca al bucle. Si se evalúa fuera del bucle y no se cumple, entonces jamás se ejecutará todo el código que esté dentro del bucle, pero ojo, aquí hay que tener en cuenta algo: dentro del bucle debe haber un momento en que la condición se cumpla, ¿Por qué?, porque si no nos vamos a quedar en un bucle infinito, es decir, se estará ejecutando el código dentro de while de una manera indefinida, lo cual no queremos que pase porque puede llegar a detenerse la carga de la página o simplemente no funcionar. Veamos un ejemplo:

Insertar CODE, HTML o PHP:
<html>

 *<head><title>ejemplo</title></head>

 *<body>

 * *<?php

 * * *$i=1; //i vale uno (si hubiera valido 11 no entra al bucle)

 * * *while($i<=10) //mientras y sea menor o igual a 10

 * * *{

 * * * *echo "$i "; //notese el espacio entre la variable y las comillas

 * * * *$i++; //equivale a i=i+1; se vas incrementando i

 * * *}

 * *?>

 *</body>

</html>
Ejemplo While

Es muy sencillo, aunque como les dije se usa principalmente en los juegos o donde se utilice lógica booleana :D



do..while


Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteración en vez de al principio. La principal diferencia frente a los bucles regulares while es que se garantiza la ejecución de la primera iteración de un bucle do..while (la condición se comprueba sólo al final de la iteración), mientras que puede no ser necesariamente ejecutada con un bucle while regular (la condición se comprueba al principio de cada iteración, si esta se evalúa como FALSE desde el principio la ejecución del bucle finalizará inmediatamente).

Insertar CODE, HTML o PHP:
do

{

 *//código

} while(condición
Este bucle es el mismo que el anterior, como dije la única diferencia es que siempre se ejcuta por lo menos una vez, ya que la condición esta al final del bucle…

Insertar CODE, HTML o PHP:
<html>

 *<head><title>ejemplo</title></head>

 *<body>

 * *<?php

 * * *$i=1; //aunque y valga 11, entra al bucle

 * * do {

 * * * *echo "$i "; //notese el espacio entre la variable y las comillas

 * * * *$i++; //equivale a i=i+1; se vas incrementando i

 * * *} while($i<=10) //mientras y sea menor o igual a 10

 * *?>

 *</body>

</html>
Ya es cuestión de gusto o necesidad jejeje…

For

Los bucles for son los bucles más complejos en PHP. La sintaxis de un bucle for es:

Insertar CODE, HTML o PHP:
for(exp1;exp2;exp3)

{

 *codigo

}
La primera expresión (expr1) se evalúa (ejecuta) incondicionalmente una vez al principio del bucle.

Al comienzo de cada ciclo, se evalúa expr2 . Si se evalúa como TRUE, el bucle continúa y las sentencias anidadas se ejecutan. Si se evalúa como FALSE, la ejecución del bucle finaliza.

Al final de cada ciclo, se evalúa (ejecuta) expr3.


Cada una de las expresiones puede estar vacía. Que expr2 esté vacía significa que el bucle debería correr indefinidamente (PHP implícitamente lo considera como TRUE).

¿Complejo? La verdad si, créanme que al menos para mí, el bucle for, ha sido el que mas difícil se me ha hecho de aprender, pero una vez entendiéndolo, es muy útil, y se pueden hacer muy buenos algoritmos :D…

He aquí el mismo ejemplo para escribir los números del 1 al 10 con for:

Insertar CODE, HTML o PHP:
<HTML>

<HEAD>

 <TITLE>For</TITLE>

</HEAD>

<BODY>

<?

 *//desde que y es igual a 0

 *//mientras que y sea igual o menor a 10

 *//i incrematará 1 cada ciclo

 *for($i=0;$i<=10;$i++)

 *{

 * *echo "$i ";

 *}

?>

</BODY>

</HTML>
Es algo complicado no?, vamos a hacer un ejercicio con los bucles para que queden comprendidos, en realidad me interesan que dominen for y while, y que las usaremos en base de datos…

Para finalizar vamos a ver dos instrucciones interesantes



break y continue


break y continue se usan indistintamente, escapan de los ciclos actuales for, while, o de la estructura de control switch, ya habíamos visto el break con el switch, php, al momento de encontrar una de esas sentencias, sale del ciclo en el que esta y continua después del ciclo :D.


Recuerden consultar sus dudas, en especial del bucle for, ya que debe quedar bien entendido para no batallar nada en el siguiente tema, que será exclusivo de funciones ;) AYUDA TEMA 3


Saludos
 
Estado
Cerrado para nuevas respuestas
Arriba Pie