Určitá smyčka vs. Neurčitá smyčka
Smyčka je blok kódu, který se opakuje po zadaný počet opakování nebo dokud není splněna nějaká podmínka. Definitivní smyčka je smyčka, ve které je počet spuštění předem znám před vstupem do smyčky. V neurčité smyčce není počet spuštění předem znám a bude se provádět, dokud nebude splněna některá podmínka.
Co je to určitá smyčka?
Určitá smyčka je smyčka, ve které je počet spuštění předem znám před vstupem do smyčky. Počet iterací, které se bude opakovat, bude obvykle poskytován prostřednictvím celočíselné proměnné. Obecně jsou smyčky for považovány za určité smyčky. Následuje příklad určité smyčky implementované pomocí smyčky for (v programovacím jazyce Java).
for (int i=0; i < num; i++)
{
//tělo cyklu for
}
Výše uvedený cyklus vykoná své tělo tolikrát, kolikrát poskytuje proměnná num. To lze určit z počáteční hodnoty proměnné i a podmínky smyčky.
Smyčky lze také použít k implementaci určitých smyček, jak je znázorněno níže (v Javě).
int i=0;
while(i<num)
{
//tělo smyčky
i++;
}
I když to používá smyčku while, je to také určitá smyčka, protože je předem známo, že se smyčka spustí tolikrát, kolikrát je poskytnuta proměnnou num.
Co je to neurčitá smyčka?
V neurčité smyčce není předem znám počet spuštění. Obvykle se bude provádět neomezená smyčka, dokud není splněna některá podmínka. Smyčky while a smyčky do-while se běžně používají k implementaci neurčitých smyček. I když neexistuje žádný konkrétní důvod, proč nepoužívat smyčky for pro vytváření neurčitých smyček, lze neurčité smyčky úhledně organizovat pomocí smyček while. Některé běžné příklady, které byste potřebovali k implementaci neurčitých smyček, jsou výzva ke čtení vstupu, dokud uživatel nevloží kladné celé číslo, čtení hesla, dokud uživatel nevloží stejné heslo dvakrát za sebou atd.
Jaký je rozdíl mezi určitou smyčkou a neurčitou smyčkou?
Určitá smyčka je smyčka, ve které je předem znám počet spuštění před vstupem do smyčky, zatímco neurčitá smyčka se provádí, dokud není splněna nějaká podmínka, a kolikrát se spustí provést není předem známo. Často jsou určité smyčky implementovány pomocí smyček for a neurčité smyčky jsou implementovány pomocí smyček while a smyček do-while. Neexistuje však žádný teoretický důvod, proč nepoužívat smyčky for pro neurčité smyčky a smyčky while pro určité smyčky. Ale neurčité smyčky by mohly být úhledně uspořádány pomocí smyček while, zatímco určité smyčky by mohly být přehledně uspořádány pomocí smyček for.