C while for..for....for

Vláďa Anděl vaelektronik na vaelektronik.cz
Čtvrtek Leden 26 23:58:14 CET 2023


No né že bych se zrovna programováním živil, ale taková nesmělá poznámka 
člověka, co občas bojuje s rychlostí MCU a někdy i se zabranou pamětí. 
Někdy o nic nejde a klidně si udělám proměnnou, která mi bude říkat, kde 
zrovna jsem, když odtamtud vyskakuju. Ale někdy se to goto prostě hodí, 
protože je to nejkratší a nakonec může být i přehledné :-)
Takhle jsem si kdysi dávno napsal čtení 12 tlačítkové klávesnice - bylo 
to nejrychlejší, co mě tehdy napadlo. Adr0, 1, 2, 3 jsou bitové proměnné 
a ovládají se tím bity portu (je to pro 8051), kde je pověšený multiplexer.

Adr1=0; Adr2=0; Adr3=0;
Adr0=0; Zpozkl();  if(!Outkl)   { Znak1='*'; goto Stisk; }
Adr0=1; Zpozkl();  if(!Outkl)   { Znak1='7'; goto Stisk; }
Adr1=1; Zpozkl();  if(!Outkl)   { Znak1='1'; goto Stisk; }
Adr0=0; Zpozkl();  if(!Outkl)   { Znak1='4'; goto Stisk; }
Adr2=1; Zpozkl();  if(!Outkl)   { Znak1='9'; goto Stisk; }
Adr1=0; Zpozkl();  if(!Outkl)   { Znak1='8'; goto Stisk; }
Adr0=1; Zpozkl();  if(!Outkl)   { Znak1='2'; goto Stisk; }
Adr1=1; Zpozkl();  if(!Outkl)   { Znak1='3'; goto Stisk; }
Adr3=1; Adr2=0; Zpozkl();  if(!Outkl)   { Znak1='0'; goto Stisk; }
Adr0=0; Zpozkl();  if(!Outkl)   { Znak1='5'; goto Stisk; }
Adr1=0; Zpozkl();  if(!Outkl)   { Znak1='6'; goto Stisk; }
Adr0=1; Zpozkl();  if(!Outkl)   { Znak1='#'; goto Stisk; }

Anděl

Dne 26.1.2023 v 21:41 Miroslav Draxal napsal(a):
>
> Tak asi to goto nechali v C protože jsou případy, kdy je to goto asi 
> nejpřehlednější.
>
> Ptal jsem se, protože mám v jednom projektu 11 vnoření a to goto je 
> prostě jednořádkové ukončení.
>
> Pokud bych používal tu „vlajku“, tak ten kód by se stal hodně hůř 
> čitelný. Vlastně cokoli navrhují v tom
>
> https://stackoverflow.com/questions/9695902/how-to-break-out-of-nested-loops
>
> Holt nechám MISRU ať se jí to nelíbí. Mě se to líbí.
>
> Pánové díky.
>
> Míra
>
> *From:*Hw-list [mailto:hw-list-bounces na list.hw.cz] *On Behalf Of 
> *Martin Blaha
> *Sent:* Thursday, January 26, 2023 9:28 PM
> *To:* hw-list na list.hw.cz
> *Subject:* Re: C while for..for....for
>
> jj jasný, udělal bych si vlajku kterou bych v následujících 
> vyhodnotil, že jsem vypadl z té vnitřní
>
> MB
>
> Dne 26.01.2023 v 21:26 Jaroslav Buchta napsal(a):
>
>     Ale jenom z te nejvnitrnejsi.
>
>     Dne 26.01.2023 v 21:25 Martin Blaha napsal(a):
>
>         ze smyčky vyskočí break
>
>         MB
>
>         Dne 26.01.2023 v 21:21 Miroslav Draxal napsal(a):
>
>             Zdravím ve spolek.
>
>             Triviální věc, ale potrápí. Jak se to správně řeší:
>
>             Mějme takovouhle konstrukci.
>
>             while(1){
>
>                            for(…){
>
>             for(….){
>
>                            if(…) goto Tady; // jak správně vyskočit až
>             na Tady????
>
>                                           }
>
>                            }
>
>             }
>
>             Tady:
>
>             Nebo je na to nějaký fígl bez goto?
>
>             Nic mě nenapadá a přemýšlím nad tím už roky, nikde ve
>             vzorových příkladech jsem nic nezahlédl.
>
>             Goto prý nepoužívat.
>
>             Hezký večer..Míra
>
>
>
>             _______________________________________________
>
>             HW-list mailing list  -  sponsored bywww.HW.cz  <http://www.HW.cz>
>
>             Hw-list na list.hw.cz
>
>             http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
>         _______________________________________________
>
>         HW-list mailing list  -  sponsored bywww.HW.cz  <http://www.HW.cz>
>
>         Hw-list na list.hw.cz
>
>         http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>     _______________________________________________
>
>     HW-list mailing list  -  sponsored bywww.HW.cz  <http://www.HW.cz>
>
>     Hw-list na list.hw.cz
>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230126/c50bb7e5/attachment.htm>


Další informace o konferenci Hw-list