NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
lukes90
Člen
Avatar
lukes90:31.5.2017 1:28

Ahoj chci se zeptat, v reálným programovaní(myslím tím třeba pro firmu) použít nekonečný cyklus while s použitím break v podmínce na ukončení je korektní?

 
Odpovědět
31.5.2017 1:28
Avatar
Odpovídá na lukes90
Michal Haňáček:31.5.2017 6:11

Ahoj,
není rozdíl mezi "reálným" a "nereálným" programováním (doteď mě ani nenapadlo, že o tom takhle někdo přemýšlí :D ). Důležité je napsat algoritmus dobře. Pokud je důvod pro použití Breaku nad rámec podmínky cyklu, klidně ho použij, je to součást snad všech jazyků, které s běžně využívají...

Nahoru Odpovědět
31.5.2017 6:11
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovídá na lukes90
Erik Šťastný:31.5.2017 8:35

Například v Pythonu cyklus do-while není a běžně se používá:

while True:
     tělo cyklu
     if podmínka:
        break
Editováno 31.5.2017 8:36
 
Nahoru Odpovědět
31.5.2017 8:35
Avatar
kxmx
Tvůrce
Avatar
kxmx:31.5.2017 8:50

A správně se používá:

podminka = true
while podminka:
    tělo cyklu
    if konec procesu:
        podminka = false
 
Nahoru Odpovědět
31.5.2017 8:50
Avatar
Odpovídá na kxmx
Erik Šťastný:31.5.2017 9:00

Co je správného na tom zakládat proměnou na víc když tam být nemusí?

Takhle triviální záležitosti bych řešil především myšlenkou že co je víc čitelnější je lepší a to je dle mě rozhodně break.

 
Nahoru Odpovědět
31.5.2017 9:00
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Erik Šťastný
Honza Bittner:31.5.2017 12:29

Ono běžně nemáš jen takto jednoduchý cyklus a rozhodování o tom, jestli daná iterace hlavního cyklu bude ta poslední není v nejvyšší úrovni cyklu, ale třeba v nějakém cyklu ještě uvnitř, nebo nemáš jen jedno pravidlo pro ukončení, proto je vhodné použít podmínku.

Tedy u něčeho jako

while not mam_skončit_1 and not mam_skončit_2:
  tělo programu...
while True:
    if mam_skončit_1 or mam_skončit_2:
        break
    tělo_programu...

si prostě vyber, co tvou podstatu vystihuje nejlépe a co bude srozumitelnější. Zrovna v Pythonu je jedno, jestli ušetříš tu trošičku času na vytvoření proměnné, nebo ne.

Ale nezapomeň, že Python má __iter__, což se zpracovává ve for in cyklech, takže pokud to lze – např. procházíš nějaký seznam, tak použít to. :-)

Nějaký odkazy:

  1. https://wiki.python.org/moin/WhileLoop
  2. https://docs.python.org/…rolflow.html
Nahoru Odpovědět
31.5.2017 12:29
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
lukes90
Člen
Avatar
lukes90:31.5.2017 19:01

Mě šlo u Javy, né u pythonu :D. Jinak děkuji za odpovědi.

 
Nahoru Odpovědět
31.5.2017 19:01
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 7 zpráv z 7.