Vsimol som si, ze do teraz si pracoval s pascalom a preto ti aj ostali zle navyky - za for nesmies dat strednik ( znak
; ), pretoze to je tiez prikaz ( prazdny prikaz ), cize cyklus for vykona "prazdny prikaz" tolkokrat, kolko je zadane. Potom dalsia vec je, ze v C-cku mozes kludne vkladat kod do blokov, aj viac krat, vnorene, nejako takto:
Kód:
{
{
;
}
printf( "abcd...." );
}
a teda tento blok, ktory mas za for sa netyka samotneho cyklu ( pretoze ten ma len jeden prikaz a to strednik ), ale je to samostatny blok, preto sa vykona prave raz.
Dalsia rozdielna vec od pascalu je aj ine fungovanie prikazu for - mozno ze to vies, ale radsej ti to spomeniem. Funguje tak, ze prva cast sa vykona ( nemusi to byt nutne inicializacia, ale zvycajne sa tak pouziva ), to znamena, v tvojom pripade priradis premennej i jednotku. V druhom kroku sa vykona porovnanie a to uz hned na zaciatku, este pred vykonanim prikazov v cykle. Ak je vysledok nenulova hodnota, cyklus sa vykona. V tomto pripade sa hodnota v premennej i porovna s hodnotou v premennej a. Ak je a rovne 1, tak i nie je mensie ako a, teda cyklus sa nevykona ani raz, hoc to mozno takto planujes ( zadaj cislo , kolko krat sa ma vykonat cyklus ). No a posledna cast je prikaz, ktory sa ma vykonat po vykonani cyklu - spravidla inkrementacia, dekrementacia premennej cyklu, ale aj tu moze byt akykolvek platny prikaz, ako v ktorejkolvek casti prikazu for.