C: reverzne cykly

David Obdrzalek David.Obdrzalek na mff.cuni.cz
Úterý Červenec 30 21:48:26 CEST 2024


Ja jsem měl asi v podvečer nějaký zatemnění mysli a v obou mailech jsem to napsal 
blbě.

Tady má samozřejmě být i-- 
unsigned char i=3;
do {
	neco; 
}
while (i--); 

Takže když se vykoná tělo cyklu s i==1, podmínka bude splněna a tedy se to otočí 
ještě jednou, přičemž po vyhodnocení podmínky se i dekrementuje na 0. Tělo se 
provede s i==0, takže nakonec podmínka splněna není a cyklus se ukončí (i sice 
dekrementujeme a podteče, ale to už mě nezajímá).

D.O.

On 30 Jul 2024 at 17:31, David Obdrzalek wrote:

> Ta pocatecni hodnota je vzdy ostre vetsi nezi nula? Pak bych spis psal 
> do neco; while (--i); 
> 
> Pokud zacatek muze byt nula a cyklus se v takovem pripade ma vykonat jednou, tak asi 
> nejspis for(unsigned i=ZACATEK+1;--i;)
>  
> D.O.
> 
> On 30 Jul 2024 at 15:07, Jan Waclawek wrote:
> 
> > [preposielam]
> > 
> > Ahojte,
> > mam zase dalsiu skolsku otazku ku cyklom for ale s reveznym pocitanim napr.
> > 3 ... 0. Napisat ten for pre hodnoty 3 ... 1 je jednoduche. Ale ako zapisat
> > ten for aby behal od 3 ... 0 ?
> > 
> > Mne sa riesenie for(unsigned char i = 3; i != 255; i--) velmi nepaci. A pri
> > verzii for( i = 3; i >=0; i--) mi zase krici kompilator na podmienke i
> > >=0...
> > 
> > Herout, Bing ani ChatGPT mi ziadne uspokojive riesenie nenasli. Ako to
> > napisat aby to bolo OK?
> > 
> > Velmi pekne dakujem za odpovede.
> > 
> > A.
> 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list





Další informace o konferenci Hw-list