[elektro] Buta C kérdés switch/case
hg12345
hg12345 at freemail.hu
Sat Nov 12 07:43:19 CET 2011
Köszi ez jó ötlet erre nem is gondoltam....
"Móczik Gábor" <pm_levlista at progzmaster.hu> írta:
>2011.11.10. 17:00 keltezéssel, Lajos Rancz írta:>
> De mit szolnal hozza, ha lenne intervallumos konstrukcio es az alabbi>
> kodra csinalna neked egy 100 ezer elemu ugrotablat?>
> switch (i)>
> {>
> case 0-50000: ... break;>
> case 50001-100000: ... break;>
> default: ... break;>
>
Szerintem a compiler se teljesen hülye, biztosan van egy limit amit >
figyelembe vesz, és ha van egy 5 állapotú választás, arra csinál egy >
ugrótáblát, ha meg 1, 100, 100000 közül kell választani, akkor nem.>
>
Azt szoktam csinálni, hogy ha van sok definiált gyakori érték amire >
dönteni kell, meg van pár tartomány amire másképp, akkor a default ágba >
teszem:>
>
switch(x) {>
case 1:>
... break;>
case 2:>
... break;>
case 3:>
... break;>
>
// ...>
>
default:>
if (x>=20 && x<=40) {>
...>
} else ...>
}>
>
Mindig azt kell választani ami a feladatnak megfelel, pl. ha itt >
jellemzően a default ág futna le a leggyakrabban, akkor ez így nem túl >
hatékony, akkor inkább azt kell kívülre tenni, és a case szerkezetet az >
else ágba.>
>
Egyébként én is jobban szeretem a switch/case szerkezetet, ahol csak >
lehet, mert sokkal áttekinthetőbb mint egy rakás if/else. Még akkor is, >
ha tartományra kell választani, de a tartomány nem széles, olyankor jön >
a pár felsorolt case, break nélkül.>
>
----------------------------------------->
elektro[-flame|-etc]>
More information about the Elektro
mailing list