ESTRUCTURES REPETITIVES O BUCLES A PHP

 

Les estructures repetitives (bucles) són aquelles que reiteren una o un grup d'instruccions "n" vegades i depenen d'una variable de control del cicle. És a dir, executen una o diverses instruccions un nombre de vegades definit. Les instruccions bàsiques que permeten construir aquest tipus d'estructures són while, do ... while i for.

 

LA INSTRUCCIÓ WHILE

La instrucció while (que en castellà es traduiria com "mentre ...") executa una porció de programa mentre es compleixi una certa condició.

Mentre la condició sigui veritable, s'executen les instruccions contingudes en el while. Quan deixa de complir-se la condició, es surt del cicle i es continua executant la resta del programa.

Si la condició no es compleix ni el primer cop que es comprova, les línies a l'interior del while no s'executaran ni una vegada.

L'estructura general o sintaxi habitual d'un bucle while és la següent:

<? Php

while (condició) {

... Sentències;

}

?>

En aquest fragment de codi estaríem indicant que mentre es compleixi la condició es realitzen les sentències, i en aquest cas si no es complís la condició es seguiria executant el programa o mostrant els continguts de la pàgina web just després del tancament de la instrucció while (que queda determinat pel símbol de tancament}).

Escriu ara aquest codi i guardeu amb un nom de fitxer com ejemplo1.php. A continuació, puja el fitxer al servidor i visualitza el resultat.

<? Php

$galetes = 0 ;

while ($galetes < 10 ) {

echo "$galetes," ;

$galetes ++;

}

?>

En aquest exemple, les instruccions dins el while s'executarien 10 vegades, mostrant els números de 0 a 9 separats per coma. Cal tenir especial cura a no crear estructures repetitives que s'executin infinitament (bucles infinits). En l'exemple anterior, si no incrementem el valor de la variable $ galetes, la condició del while es compliria sempre i tindríem un problema perquè hauríem creat un bucle infinit, i el programa 'encallat' en aquest while.

 

EXERCICI 1

Crea el codi PHP on generis:

a) Un bucle while que compti des 50-40 (fixa't que en aquest cas és decreixent)

b) Un bucle while que a partir d'una variable $comptador que pren valors d'1 a 5, mostri per pantalla el doble del valor de $comptador, és a dir, que mostri 2, 4, 6, 8, 10.

 

La instrucció DO ... WHILE

L'estructura repetitiva do-while (en castellà equivaldria a fer ... mentre) és molt similar a l'estructura while, excepte que l'expressió veritable és verificada al final de cada iteració en lloc de al principi. La diferència principal amb els bucles while és que està garantit que s'executin les instruccions que contenen, almenys una vegada (la verificació de si s'ha de repetir el procés es realitza al final de la repetició de l'estructura.

L'estructura general o sintaxi habitual d'un bucle do while és la següent:

<? Php

do {

... Sentències

} While (condició);

?>

En aquest fragment de codi estaríem indicant que s'executi una primera vegada "sí o sí" les sentències, i que després s'avaluï la condició per a comprovar si s'han d'executar novament les sentències. Com veiem, encara que no es compleixi la condició les sentències s'executarien almenys una primera vegada.

Escriu ara aquest codi i guardeu amb un nom de fitxer com ejemplo2.php. A continuació, puja el fitxer al servidor i visualitza el resultat.

<? Php

$galetes = 0 ;

fer {

echo "$galetes," ;

$galetes ++;

} while ($galetes < 10 );

?>

 

EXERCICI 2

Crea el codi PHP on generis:

a) Un bucle do ... while que compti des 50-40 (fixa't que en aquest cas és decreixent)

b) Un bucle do ... while que a partir d'una variable $comptador que pren valors d'1 a 5, mostri per pantalla el doble del valor de $comptador, és a dir, que mostri 2, 4, 6, 8, 10.

 

LA INSTRUCCIÓ FOR

L'estructura repetitiva for (en castellà es traduiria com "des ...") s'utilitza generalment quan tenim ben determinada la quantitat de repeticions a realitzar. Es diferencia de les anteriors en què s'ha d'incloure en la pròpia instrucció una variable de control, la qual s'incrementa o decrementa de forma automàtica. L'estructura d'aquestes instruccions ve a ser molt similar a l'anterior.

L'estructura general o sintaxi habitual d'un bucle for és la següent:

<? Php

for ($variable = valor_inicial;

condició;

increment) {

... Sentències;

}

?>

En aquest fragment de codi estaríem indicant que mentre es compleixi la condició es realitzen les sentències, i en aquest cas si no es complís la condició es seguiria executant el programa just després del tancament de la instrucció for (}). Tot això és igual a la instrucció while anteriorment citada, llevat que en la pròpia declaració de l'estructura es troba la variable de control, que en cada repetició s'incrementa automàticament.

Aquesta instrucció consta, per tant, de tres paràmetres:

  • Inicialització de la variable que s'utilitzarà en la condició.

  • Condició que s'ha de complir per a romandre en el cicle.

  • Modificació de la variable utilitzada en la condició.

Escriu ara aquest altre codi guarda'l amb un nom de fitxer com exemple3.php. A continuació, puja el fitxer al servidor i visualitza el resultat.

<? Php

for($galetes=0 ;

$galetes<10 ;

$galetes++) {

echo "$galetes," ;

}

?>

Aquest exemple mostra a la sortida, la mateixa informació que mostrava la instrucció while. Com podem observar, el valor inicial i l'increment de la variable $galetes, van en la mateixa instrucció.

 

EXERCICI 3

Crea el codi PHP on generis:

a) Un bucle for que compti des 50-40 (fixa't que en aquest cas és decreixent i que per tant la variable haurà d'operar com $galetes- -).

b) Un bucle for que a partir d'una variable $comptador que pren valors d'1 a 5, mostri per pantalla el doble del valor de $comptador, és a dir, que mostri 2, 4, 6, 8, 10.

 

 

MODIFICAR EL PAS O STEP DE LA VARIABLE comptadora

Crea el següent codi, guarda'l amb un nom de fitxer com exemple4.php i visualitza els resultats al teu navegador.

<? Php

for($i=0 ;

     i<$50 ;

     $i+=5) {

     echo "$i <br/>" ;

}

?>

Fixa't que en aquest cas a la variable comptador l'hem anomenat i. És habitual utilitzar noms com i, j, k per les variables comptadores en bucles.

Una altra cosa interessant és que usant la instrucció + = aconseguim que la variable comptadora no vagi d'un en un, sinó que el pas (step) de la variable sigui el nombre que nosaltres desitgem. En aquest cas, hem utilitzat un increment de 5 unitats en cada repetició del bucle. També podem aconseguir el mateix efecte però amb decrements usant - =.

 

EXERCICI 4

Crea el codi PHP on generis:

a) Un bucle for que compti des de 50 fins 500 dels 25 a 25.

b) Un bucle for que a partir d'una variable de control $j que pren valors de 100 a 500 de 100 a 100, mostri per pantalla el resultat de dividir la variable de control per 20. En aquest cas, el resultat serà el punt 5 (que és 100/20 ...), 10 (que és 200/20 ...), 15, 20, 25.