PHP si MySql (Programator Web 2)

DOCUMENTATIE CURS

for

Structura de control for este o structura repetitiva. Arata astfel:
Pseudocod
for (expresie1;expresie2;expresie3) bloc instructiuni;

La fel ca si in celelalte cazuri, daca in cadrul buclei for vreau sa execut mai multe instructiuni, le grupez intr-un bloc de instructiuni folosind acolade.

Structura for functioneaza astfel:
  • expresie1 este evaluata o singura data, neconditionat, la inceputul primei bucle
  • expresie2 este o conditie, o expresie evaluata boolean la inceputul fiecarei bucle
  • expresie3 este evaluata/executata la sfarsitul fiecarei bucle
Se obisnuieste ca expresie1 sa fie o initializare a unei variabile gen $i = 1, expresie2 o conditie gen $i <10, iar expresie3 o incrementare, sau decrementare sau alta operatie aritmetica ce afecteaza variabila $i ($i++ sau $i+=3 , etc)

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
/*
clasic exemplu de for ce rezulta in 10 iteratii (de la 0 la 9)
*/
for ($i = 0; $i < 10; $i++) {
  echo 'valoarea lui $i este: '."$i \n";
 }
/*
ATENTIE: daca folosesti in continuare variabila $i,
valoarea ei este 10 dupa for,  pentru ca la sfarsitul ultimului 
ciclu (cand $i a fost 9) s-a executat $i++
*/
var_dump($i);
?>
1
2
3
4
5
6
7
8
9
10
11
valoarea lui $i este: 0 
valoarea lui $i este: 1 
valoarea lui $i este: 2 
valoarea lui $i este: 3 
valoarea lui $i este: 4 
valoarea lui $i este: 5 
valoarea lui $i este: 6 
valoarea lui $i este: 7 
valoarea lui $i este: 8 
valoarea lui $i este: 9 
int(10)


expresie1, expresie2 sau expresie3 pot fi de fapt formate din mai multe expresii separate prin virgula.

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
<?php
for ($i = 0, $j= 9; $i + $j > 0; $i++, $j-=2) {
  echo $i.' '.$j."\n";
 }
?>
1
2
3
4
5
6
7
8
9
0 9
1 7
2 5
3 3
4 1
5 -1
6 -3
7 -5
8 -7


Oricare din expresie1, expresie2 sau expresie3 poate lipsi. Dar ramane separatorul ";" dintre cele 3 expresii. Daca expresie2 lipseste, deci conditia ce este evaluata la inceputul fiecarei bucle, atunci expresie2 este evaluata automat la TRUE. Dintr-o astfel de bucla se poate iesi doar cu break.

Sursa script Sursa HTML in browser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
for ($i = 0; ;$i++) {
  if ($i > 9 ) {
    break;
  }
  echo $i . ' ';
}
echo "\n\n";
for (; ;) { // echivalent cu while(TRUE)
  $k++;
  if ($k > 10) {
    break;
  }
  echo $k.' ';
 }
?>
1
2
3
0 1 2 3 4 5 6 7 8 9 
1 2 3 4 5 6 7 8 9 10


© 2006-2012 Crystal Mind Academy. All rights reserved