Introducción al PHP (Parte 11: Estructuras repetitivas)

  Una situación habitual en la lógica de los programas consiste en tener que ejecutar repetidamente un conjunto de instruciones hasta que se cumpla una determinada condición o que, lo que es lo mismo, deje de cumplirse una condición. Las sentencias que se utilizan para controlar esas iteraciones, o bucles, son denominadas sentencias de control de bucles, o repetitivas.
  Como se verá en esta entrada de la presente bitácora, que continúa con la serie de entradas relacionadas con el lenguaje de guiones PHP, uno de los lenguajes informáticos que utilizan dichas sentencias es el antes mencionado.

   Las sentencias repetitivas de PHP son: while, for, do... while, y foreach.


SENTENCIA WHILE

  Se trata de la sentencia de control de bucles más simple. Funciona del siguiente modo: Cuando se encuentra una sentencia while se evalúa la expresión que se encuentra dentro de los paréntesis, si esta se evalúa como VERDADERO entonces se ejecuta la instrución o bloque de instruciones que va encerrado entre paréntesis. El valor de la expresión se verifica cada vez al inicio del bucle. Se debe tener en cuenta que aunque este valor cambie durante la ejecución de las sentencias que se encuentran en el cuerpo del while, la ejecución no se detendrá hasta el final de la iteración. Cuando la expresión del while se evalúe como FALSO se sale del bucle y la ejecución continúa con la línea que se encuentre después de la llave de cierre. Al evaluarse la expresión antes de entrar en el bucle, puede suceder que esta se evalúe desde el principio como FALSO, lo que lograría que las sentencias que se encuentran en el cuerpo del while no lleguen a ejecutarse ni una sola vez.
  La sintaxis básica es la siguiente:
while (expresión)
sentencia;

  En caso de que se desee agrupar varias instruciones dentro del bucle, se deberán incluir llaves para delimitar el grupo tal como se ve a continuación, donde se muestra la sintaxis más completa:
while (expresión) {
sentencia1;
. . .
sentenciaN;
}

SENTENCIA DO...WHILE

  Los bucles do...while son muy parecidos a los bucles while, excepto que en este caso las condiciones  se comprueban al final de cada iteración en lugar de al comienzo. La diferencia principal frente a los bucles anteriores es que se garantiza la ejecución de la primera iteración de un bucle do...while , puesto que la condición se comprueba sólamente al final de la iteración, mientras que con el bucle while puede no ser necesariamente ejecutada (la condición se comprueba al inicio de cada iteración y si es evaluada coma FALSO desde el comienzo, la ejecución del bucle finalizará inmediatamente).
  La sintaxis es la siguiente:
do {
sentencia1;
. . .
sentenciaN;
} while (expresión);

  Si el bloque únicamente contiene una sentencia se hace innecesario el uso de las llaves. 
  El funcionamento de esta estructura de control es el que sigue: Tras la ejecución de una repetición, es decir, todas las sentencias dentro del bloque de la sentencia do...while, se realizará la evaluación de la expresión. Si la evaluación fuese falsa se saldrá del bucle y, en caso contrario, se sigue con la siguiente iteración.
  La expresión puede ser cualquier expresión que se pueda evaluar como verdadera o falsa, con uno solo o con varios operadores.


SENTENCIA FOR

  Esta sentencia es algo más compleja que las anteriores, mas es una forma compacta de escribir ciertos tipos de bucles. Normalmente, se emplea un bucle for cuando se sabe cuantas veces se desea repetir el bucle. Utiliza una variable contador en bucle for para mantener el registro de cuantas veces se pasó por el bucle.
  La sintaxis general del bucle for es la siguiente:
for (expresión1; expresión2; expresión3)
      sentencia;
o

for (expresión1; expresión2; expresión3) {
      sentencia1;
      . . .
     sentenciaN;
}

En estas sintaxis:
  •  La expresión "expresión1" sirve para dar un valor de inicialización a una variable y sólo se ejecuta en la primera ejecución de la sentencia for.
  •   La expresión "expresión2" se evalúa en cada repetición, si esta es verdadeira, se ejecuta la instrución o bloque de instrucións internos de la sentencia for, en caso contrario, se continúa con el flujo del programa, o sea, con la instrucción que está a continuación del bloque for.
  •   La expresión "expresión3" se evalúa después de cada iteración, normalmente se utiliza para incrementar o decrementar la variable que interviene en "expresión2". Aunque la expresión puede ser de cualquier tipo, lo lógico es que modifique el valor de la variable que se inicializó en "expresión1".

  No obstante las tres expresións son opcionales. Ante la carencia de las expresiones "expresión1" y "expresión3" dentro del bloque se pueden incluir las instrucciones de variación de los valores de las variables que controlan el bucle. Por otra parte, si la que no se define es la expresión "expresión2", PHP presupone que es VERDADERA y ejecuta el bucle indefinidamente (la mejor opción en este caso es que haya una sentencia break dentro del bloque para salir en algún momento del bucle).
  Además de que las expresiones puedan estar vacías, también pueden contener múltiples expresiones separadas por comas. En "expresión2", todas las expresiones separadas por comas son evaluadas, pero el resultado se obtiene de la última parte.
  Pueden verse ejemplos de este tipo de estructuras de control en la siguiente entrada.

  Espero que esta entrada haya sido del gusto del lector. En caso afirmativo, aguardo que el lector la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.