headerphoto

Cyklus for

Další typ cyklu nazýváme cyklem se známým počtem průchodů. Je to taky nejčastější použití tohoto cyklu, i když přesný počet opakování nemusíme vždy přesně znát. Obecná syntaxe příkazu:

for (poč_nastavení; výraz; iterace) příkaz;

Poznámky k provádění:

  • počáteční nastavení (inicializace) cyklu se provede jenom jednou před začátkem samotného cyklu
  • výraz v závorce se testuje na začátku každého průchodu cyklem
  • když výsledkem výrazu je pravda, provede se příkaz
  • když výsledkem výrazu je nepravda, cyklus končí a v programu se pokračuje dalším příkazem za cyklem
  • příkaz může tvořit taky tzv. složený příkaz (blok) neboli posloupnost více příkazů, které uzavřeme ve složených závorkách
  • iterace se provádí na konci každého průchodu cyklem. Jedná se vlastně o nastavení změny řídící proměnné cyklu

Př. Program sečte zadaná čísla. Jejich počet určí uživatel na začátku programu.

 #include <stdio.h>
 #include <stdlib.h>

 int main()
 {
   int i, pocet;
   float cislo, soucet;

   printf("\nZadejte pocet cisel: ");
   scanf("%d",&pocet);
  
   for(i=1, soucet=0; i<=pocet; i++)
   {
      printf("Zadejte %d.cislo: ", i); 
      scanf("%f", &cislo);
      soucet = soucet + cislo;        
   }

   printf("\nSoucet cisel je : %.2f\n\n", soucet);
   system("pause");
   return 0;
 }
 

V příkazu for je možné vynechat některou z částí, které jsou uvedeny v závorce za klíčovým slovem. Je možné neuvádět ani jednu část, ale musíme vždy uvést oba středníky. V principu je ale nejlepší uvést všechny 3 části, které charakterizují provádění konkrétní smyčky.

Příkazy break a continue

Příkazy break a continue se používají ve smyčkách, mění jejich standardní provádění.

Příkaz break způsobí okamžité ukončení aktuálního cyklu. Program pokračuje příkazem, následujícím za cyklem. Příkaz break se používá taky v přepínači switch.

Příkaz continue způsobí ukončení aktuálního průchodu cyklem, pokračuje se dalším průchodem. Cyklus nekončí.

Pokud uvedené příkazy použijeme ve vnořeném cyklu, platí pro ten nejblíže vnořený.