NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 23 - Cykly v JavaScriptu potřetí

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
Vojtěch Kadlec:15.5.2025 21:46

přijde mi že se učím co nemám dělat. Chápu snahu to zmínit, ale pojetí mi nesedlo

Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Vojtěch Kadlec
David Hartinger:4. února 16:30

To je snad dobře, že tě učíme, co nemáš dělat :)

Odpovědět
New kid back on the block with a R.I.P
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Vojtěch Kadlec
DarkCoder:5. února 10:40

Použití while (true) nebo for (;;) s řízeným ukončením pomocí break je plně validní a běžná technika.

Uplatňuje se zejména tehdy, když ukončovací podmínka vzniká až během iterace (např. při parsování, čtení streamů, zpracování fronty nebo stavových automatů).

Problémem není samotná konstrukce cyklu, ale nejasně definované nebo neúplné výstupní podmínky. Podmínka v hlavičce cyklu není vždy čitelnější – naopak, explicitní break může zlepšit srozumitelnost tím, že jasně pojmenuje jednotlivé důvody ukončení cyklu.

Nekonečný cyklus může vzniknout v jakékoli konstrukci (while, for), pokud je logika chybná; přítomnost podmínky v hlavičce tomu sama o sobě nezabrání. Proto je nutné hodnotit záměr, čitelnost a úplnost výstupních cest, nikoli mechanicky odmítat while (true) nebo break.

Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na DarkCoder
David Hartinger:18. února 15:23

Prosím, uvědom si, že píšeš pod první programovací kurz pro úplné začátečníky. Je pro ně nevhodné vytvářet nekonečné cykly a breakovat, když mohou jednouše přehledně například použít boolean proměnnou nebo zapsat cyklus úplně normálně přes kontrolní proměnnou. Když jim řekneš, že to je ok, tak mohou namísto obyčejného for začít skákat z nekonečného cyklu, protože to někde uvidí. Je to minimálně kontroverzní praktika, u nás to v codereview vracíme zpět na dev (PHP). O tobě navíc vím, že programuješ v nižších jazycích (C/C++), kde jsou návyky benevoletnější než ve vyšších (JS).

Odpovědět
New kid back on the block with a R.I.P
Avatar
DarkCoder
Člen
Avatar
Odpovídá na David Hartinger
DarkCoder:18. února 16:03

Vím, že jde o úvodní kurz pro začátečníky, proto se do toho nebudu dál pouštět do hloubky. Chtěl jsem jen doplnit širší kontext, protože se s těmito vzory mohou setkat i jinde a je dobré vědět, že mají své legitimní použití. Některé přístupy k řízení toku (např. práce s více výstupními cestami) ale dávají plný smysl až s většími zkušenostmi a studenti se k nim obvykle přirozeně dostanou později, jakmile lépe pochopí tok programu a jeho strukturu.

Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Nejnovější komentáře jsou na konci poslední stránky.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 25.