1/35
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Co je to cyklus v programování?
Řídicí struktura, která umožňuje opakované spouštění určitého bloku kódu, dokud platí daná podmínka.
Co je to iterace?
Jedno úplné proběhnutí (vykonání) těla cyklu.
Jaké jsou základní typy cyklů?
For, while, do-while (a v mnoha jazycích také foreach).
Co se stane, pokud podmínka cyklu nikdy nepřestane platit?
Vznikne tzv. nekonečný cyklus a program se "zacyklí" (zamrzne nebo spadne).
K čemu slouží řídící proměnná cyklu?
K počítání iterací a kontrole, zda má cyklus pokračovat (nejčastěji značená jako $i).
Kdy je nejvhodnější použít cyklus FOR?
Když už předem přesně známe počet opakování (iterací).
Ze kterých tří částí se skládá hlavička cyklu FOR?
Inicializace proměnné, podmínka běhu, inkrementace/dekrementace (změna kroku).
Co dělá inicializační část v hlavičce cyklu FOR?
Nastavuje počáteční hodnotu řídící proměnné (např. $i = 0). Provede se pouze jednou na začátku.
Co se stane, když je podmínka v cyklu FOR nepravdivá hned na začátku?
Tělo cyklu se neprovede ani jednou a program rovnou pokračuje dál.
Jak nejčastěji zapíšeme inkrementaci (zvýšení o 1) proměnné v PHP?
$i++
Lze v cyklu FOR řídící proměnnou dekrementovat (snižovat její hodnotu)?
Ano, např. pomocí $i--, cyklus pak může odpočítávat pozpátku.
Kdy je vhodnější použít cyklus WHILE místo FOR?
Když předem neznáme přesný počet opakování a běh cyklu závisí na splnění nějaké dynamické podmínky.
Kdy se testuje podmínka u cyklu WHILE?
Na úplném začátku, před každou iterací (tzv. cyklus s podmínkou na začátku).
Je garantováno, že se tělo cyklu WHILE provede alespoň jednou?
Ne. Pokud je podmínka nepravdivá hned na začátku, cyklus se vůbec nespustí.
Jaký je hlavní rozdíl mezi cykly WHILE a DO-WHILE?
DO-WHILE testuje podmínku až na konci iterace, zatímco WHILE na začátku.
Kolikrát se minimálně provede tělo cyklu DO-WHILE?
Vždy minimálně jednou, i kdyby byla podmínka od začátku nepravdivá.
Na co nesmíme zapomenout uvnitř těla cyklu WHILE, abychom předešli nekonečnému cyklu?
Uvnitř těla se musí měnit hodnota proměnné, která ovlivňuje podmínku v hlavičce (např. přičítat počítadlo nebo číst další data).
K čemu je specificky určen cyklus FOREACH?
K jednoduchému a bezpečnému procházení všech prvků polí nebo objektů.
Jaká je základní syntaxe cyklu FOREACH pro získání pouze hodnot pole?
foreach ($pole as $hodnota) { … }
Jaká je syntaxe FOREACH, pokud potřebujeme pracovat i s klíči (např. v asociativním poli)?
foreach ($pole as $klic => $hodnota) { … }
K čemu slouží příkaz BREAK uvnitř cyklu?
Okamžitě ukončí běh celého cyklu a program pokračuje prvním příkazem pod cyklem.
K čemu slouží příkaz CONTINUE uvnitř cyklu?
Okamžitě ukončí pouze aktuální iteraci a skočí na začátek cyklu k dalšímu vyhodnocení podmínky.
Lze pomocí příkazu BREAK ukončit i více vnořených cyklů najednou?
Ano, např. v PHP zápis "break 2;" ukončí dva vnořené cykly zaráz.
Co jsou to vnořené cykly (nested loops)?
Jeden nebo více cyklů, které jsou umístěné uvnitř těla jiného (vnějšího) cyklu.
Jak se chová vnitřní cyklus během jedné iterace vnějšího cyklu?
Vnitřní cyklus proběhne vždy celý (všechny své iterace od začátku do konce).
Pokud má vnější cyklus 5 iterací a vnitřní 4 iterace, kolikrát se celkem provede kód uvnitř vnitřního cyklu?
20krát (5 * 4).
Lze v hlavičce cyklu WHILE použít více podmínek?
Ano, pomocí logických operátorů (AND &&, OR ||) můžeme složit komplexní podmínku.
Jaký je typický případ užití cyklu WHILE při práci s databází?
Postupné načítání a výpis řádků z výsledku dotazu (např. while($row = $stmt->fetch())).
Co znamená chyba zvaná "Off-by-one error" (chyba o jednu)?
Častá logická chyba, kdy cyklus proběhne o jednou více nebo méně, než programátor zamýšlel (např. vinou operátoru <= místo <).
Proč se při cyklení přes indexovaná pole začíná počítat většinou od 0 a ne od 1?
Protože pole jsou v drtivé většině programovacích jazyků indexována od nuly.
Může být v inicializační části cyklu FOR deklarováno více proměnných?
Ano, jednotlivé deklarace se oddělují čárkou (např. for($i = 0, $j = 10; …)).
Co nahrazují strukturované cykly ve starších programovacích přístupech?
Nepřehledné a špatně udržovatelné skoky v kódu (tzv. příkaz GOTO).
Co se stane, když za hlavičku cyklu FOR nebo WHILE (před blok s vlnitými závorkami) omylem napíšeš středník?
Cyklus proběhne "naprázdno", opakuje se pouze onen prázdný příkaz reprezentovaný středníkem, a kód v závorkách se provede až po skončení cyklu.
Je možné v cyklu FOREACH upravovat přímo původní hodnoty v poli?
Ano, ale proměnná hodnoty musí být předána odkazem (tzv. reference) přidáním znaku & (např. foreach($pole as &$hodnota)).
Může mít cyklus FOR prázdnou hlavičku, tedy zapsanou jen jako "for(;;)" ?
Ano, takto zapsaná hlavička vytvoří záměrný nekonečný cyklus (obdoba while(true)).