[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Nested Switch() statements



PureBytes Links

Trading Reference Links

Interesting topic, but where in the Amibroker user´s guide can I find 
information covering the Switch() function?

T.O.

--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@xxx> 
wrote:
>
> 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" <sjdugas@xxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> 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" <groups@xxx>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > 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" <rho@xxx>
> >> To: <amibroker@xxxxxxxxxxxxxxx>
> >> 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

<*> 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:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/