Deutsch English Français Italiano |
<6724CFD2.4030607@grunge.pl> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail From: fir <fir@grunge.pl> Newsgroups: comp.lang.c Subject: Re: else ladders practice Date: Fri, 01 Nov 2024 13:55:46 +0100 Organization: i2pn2 (i2pn.org) Message-ID: <6724CFD2.4030607@grunge.pl> References: <3deb64c5b0ee344acd9fbaea1002baf7302c1e8f@i2pn2.org> <vg0t3j$2ruor$1@dont-email.me> <78eabb4054783e30968ae5ffafd6b4ff2e5a5f17@i2pn2.org> <vg2g37$37mh3$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: i2pn2.org; logging-data="450619"; mail-complaints-to="usenet@i2pn2.org"; posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0"; User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0 SeaMonkey/2.24 To: Bart <bc@freeuk.com> X-Spam-Checker-Version: SpamAssassin 4.0.0 In-Reply-To: <vg2g37$37mh3$1@dont-email.me> Bytes: 3443 Lines: 84 Bart wrote: > On 01/11/2024 11:32, fir wrote: >> Bart wrote: >>> ral clear patterns here: you're testing the same variable 'n' against >>> several mutually exclusive alternatives, which also happen to be >>> consecutive values. >>> >>> C is short of ways to express this, if you want to keep those >>> 'somethings' as inline code (otherwise arrays of function pointers or >>> even label pointers could be use >> >> so in short this groupo seem to have no conclusion but is tolerant >> foir various approaches as it seems >> >> imo the else latder is like most proper but i dont lkie it optically, >> swich case i also dont like (use as far i i remember never in my code, >> for years dont use even one) >> >> so i persnally would use bare ifs and maybe elses ocasionally >> (and switch should be mended but its fully not clear how, >> >> as to those pointer tables im not sure but im like measurad it onece >> and it was (not sure as to thsi as i dont remember exactly) slow maybe >> dependant on architecture so its noth wort of use (if i remember >> correctly) > > Well, personally I don't like that repetition, that's why I mentioned > the patterns. You're writing 'n' 5 times, '==' 5 times, and you're > writing out the numbers 1, 2, 3, 4, 5. > > I also don't like the lack of exclusivity. > > However I don't need to use C. If those 'somethings' were simple, or > were expressions, I could use syntax like this: > > (n | s1, s2, s3, s4, s5) > on a C ground more suitable is {s1,s2,s3,s4,s5)[n] //which is just array indexing, and could use also like { {0,0,0,0,0} {0,1,1,1,0} {1,1,1,1,1} {0,1,1,1,0} {0,0,1,0,0}} [j][i] anmd so on (already wrote on thsi once) bot for general switch something more is needed probably i could cnsider something like n -1-> /*something / -2-> /*something / -3-> /*something / but i dont know (this above line seem not quite good > If they were more elaborate statements, I would use a heavier syntax, > but still one where 'n' is only written once, and I don't need to repeat > '=='. > > In the C version, you could mistakenly write 'm' instead of 'n', or '=' > instead of '=='; it's more error prone, and a compiler might not be able > to detect it. > > In the C, you could probably do something like this: > > #define or else if > > if (x == a) {} > or (x == b) {} > or (x == c) {} > >