Este intr-adevar des folosit pentru a incrementa un numar care poate fi indexul unui array, in fine, cand vei folosi se va si vedea clar cum este util.
While este folosit cand nu e nevoie de incrementare, cand conditia este data de alti factori, de exemplu faptul ca escape nu este apasat:
while(key_pressed(KEY_ESCAPE)==false)
{
//do something...
wait(5);
}
altfel exprimat:
while(!key_pressed(KEY_ESCAPE))
{
//do something...
wait(5);
}
o a treia exprimare:
while(key_pressed(KEY_ESCAPE)!=true)
{
//do something...
wait(5);
}
Va tot merge while-ul de sus pana se apasa tasta escape.
Cel mai des la jocuri vei folosi while(true), ceea ce inseamna ca acea bucla tot isi face ciclurile pana nu o intrerupi tu cu exit() sau break.
Atentie la while, neaparat sa fie inauntru un wait(5) ca sa rasufle putin procesorul.
Dau mai jos doua exemple in care sa fii salutat de trei ori prin SApi5, un exemplu cu while si unul cu for:
Cu for, cel care este natural intr-un astfel de exemplu:
Cod: Selectaţi tot
//initiem global obiectul tts pentru SApi5:
tts_voice v;
void main()
{
//dam vocea pe mai rapid, 75 la suta, in BGT se noteaza viteza de la minus 10 la plus 10:
v.rate=5;
for(int x=0; x<3; x++)
{
v.speak_wait("Hello!");
}
}
Exemplul cu while, cam fara sens daca exista for:
Cod: Selectaţi tot
//initiem tts-ul global:
tts_voice vorbire;
void main()
{
//setam vocea la viteza standard, cea de mijloc, 50 la suta:
vorbire.rate=0;
//cream o variabila integer x cu valoarea 0:
int x=0;
//bucla:
while(x<3) //atata vreme cat x este mai mic decat 3.
{
vorbire.speak_wait("Hello");
//acum incrementam x-ul cu 1 ca sa nu ramana la 0 si loopul sa mearga la infinit:
x++;
}
}
Nu mai stiu ce ai intrebat, dar ma uit si mai scriu intr-un post ulterior.