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