OK thank you! Steve
----- Original Message ----- From: "Tomasz Janeczko" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Friday, May 25, 2007 12:18 PM Subject: Re: [amibroker] Re: Nested Switch() statements > Steve, > > No, I don't think it is worthwhile for speed reasons. > In AFL speed of execution of switch statement vs if-else is almost > identical. > The only reason for using switch is that the code may look > "cleaner". > > Best regards, > Tomasz Janeczko > amibroker.com > ----- Original Message ----- > From: "Steve Dugas" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Friday, May 25, 2007 5:26 PM > Subject: Re: [amibroker] Re: Nested Switch() statements > > >> Hi Tomasz - Do you thnk it is worthwhile ( maybe speed increase, for >> example? ) to convert existing if-else if-else if... over to Switch() ? >> Thank you! >> >> Steve >> >> ----- Original Message ----- >> From: "Tomasz Janeczko" <[EMAIL PROTECTED]> >> To: <[email protected]> >> Sent: Friday, May 25, 2007 7:32 AM >> Subject: Re: [amibroker] Re: Nested Switch() statements >> >> >>> Hello, >>> >>> Frankly speaking fall-through is one of BEST features of switch() >>> statement. >>> I use it thousands of times. Implementations lacking that are missing >>> single most important thing in switch() statement. >>> >>> K&R "The C Programming Language" book is really recommended reading. >>> >>> Best regards, >>> Tomasz Janeczko >>> amibroker.com >>> ----- Original Message ----- >>> From: "Nigel Rowe" <[EMAIL PROTECTED]> >>> To: <[email protected]> >>> Sent: Friday, May 25, 2007 12:12 PM >>> Subject: Re: [amibroker] Re: Nested Switch() statements >>> >>> >>>> On Fri, 25 May 2007, Ton Sieverding wrote: >>>>> Can you please explain me why 'switch statements are a frequent >>>>> source of bugs' ? If the last CASE is a DEFAULT then all possible >>>>> cases are covered. Or am I missing something in the AFL SWITCH >>>>> statement ? >>>>> >>>>> switch ( expression ) >>>>> { >>>>> case constant-expression1 : statement; >>>>> case constant-expression2 : statement; >>>>> ... >>>>> case constant-expressionN : statement; >>>>> >>>>> default : statement; >>>>> >>>>> } >>>>> >>>>> >>>>> Ton. >>>> >>>> The 'standard' error when using a switch statement in 'C' and >>>> presumably >>>> AFL, is forgetting to put 'break;' statements in. >>>> >>>> To paraphrase your example (above) so it looks like this:- >>>> >>>> switch ( expression ) >>>> { >>>> case constant-expression1 : statement1; >>>> case constant-expression2 : statement2; >>>> ... >>>> case constant-expressionN : statementN; >>>> default : statement_default; >>>> } >>>> >>>> If you leave out the break statements, and >>>> expression==constant_expression1 you will execute statement1 (what you >>>> wanted) AND ALSO statement2 AND ALSO statement3 AND ALSO ... statementN >>>> AND ALSO statement_default. >>>> >>>> It's sometimes called the 'fall-through' bug. It's easy to miss, can >>>> be >>>> a right pain! >>>> >>>> >>>> -- >>>> Nigel Rowe >>>> rho \N{COMMERCIAL AT} swiftdsl \N{FULL STOP} com \N{FULL STOP} au >>>> >>>> >>>> >>>> Please note that this group is for discussion between users only. >>>> >>>> To get support from AmiBroker please send an e-mail directly to >>>> SUPPORT {at} amibroker.com >>>> >>>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: >>>> http://www.amibroker.com/devlog/ >>>> >>>> For other support material please check also: >>>> http://www.amibroker.com/support.html >>>> >>>> Yahoo! Groups Links >>>> >>>> >>>> >>>> >>>> >>> >>> >>> Please note that this group is for discussion between users only. >>> >>> To get support from AmiBroker please send an e-mail directly to >>> SUPPORT {at} amibroker.com >>> >>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: >>> http://www.amibroker.com/devlog/ >>> >>> For other support material please check also: >>> http://www.amibroker.com/support.html >>> >>> Yahoo! Groups Links >>> >>> >>> >>> >> >> >> >> >> Please note that this group is for discussion between users only. >> >> To get support from AmiBroker please send an e-mail directly to >> SUPPORT {at} amibroker.com >> >> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: >> http://www.amibroker.com/devlog/ >> >> For other support material please check also: >> http://www.amibroker.com/support.html >> >> Yahoo! Groups Links >> >> >> >> >> > > > Please note that this group is for discussion between users only. > > To get support from AmiBroker please send an e-mail directly to > SUPPORT {at} amibroker.com > > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: > http://www.amibroker.com/devlog/ > > For other support material please check also: > http://www.amibroker.com/support.html > > Yahoo! Groups Links > > > > Please note that this group is for discussion between users only. To get support from AmiBroker please send an e-mail directly to SUPPORT {at} amibroker.com For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: http://www.amibroker.com/devlog/ For other support material please check also: http://www.amibroker.com/support.html Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/amibroker/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/amibroker/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
