Petlja while će raditi dok god je BILO KOJI od dva uslova ispunjen. To je smisao logičkog ILI.
Dakle, petlja radi:
- i kad su oba uslova ispunjena
- i kad je jedan uslov ispunjen (bilo prvi bilo drugi, svejedno)
U tvom slučaju, kada "i" dosegne vrednost 6 (nakon trećeg prolaza), oba uslova su i dalje tačana, i petlja radi. Da bi petlja mogla da se PREKINE, prethodno je "i" moralo da dobije i sledeću vrednost, a to je 8. Otuda taj rezultat.
na primer:
Code:
int i;
for ( i=0; i<=9; i++ )
;
cout << i;
ovde je "i" jednako 10 (a ne 9) nakon izlaska iz petlje, jer da bi petlja mogla biti prekinuta, prethodno je "i" dobilo vrenost koja je potreban uslova za izlazak iz petlje.
Unutar petlje vrednosti su očekivane.
A zašto to tako radi, biće ti jasno kad budete prešli na programiranje na asembleru i kad isti taj kod za petlju budete morali da uradite u njemu ;)
FREEWARE
Di rečnik,
v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com