A curious case
Andre Garzia
andre at andregarzia.com
Wed Mar 2 11:12:35 EST 2011
2011/3/2 Björnke von Gierke <bvg at mac.com>
> I always thought that the dozens of ways to use if-then-else constructs in
> LC are too much options. I always use each on it's own line, because
> otherwise it's just so hard to read and decipher. Even for super simple
> cases:
>
> if the visible of me then
> exit repeat
> end if
>
I tend to work on the same way. longer forms makes shorter understanding
time. I'd rather write more and understand more than write faster and then
one week from now, be completely lost in nested mazes
>
> On 2 Mar 2011, at 16:40, Nonsanity wrote:
>
> > Others have answered this pretty well, but I thought I'd add some
> examples
> > for clarity - With future readers in mind.
> >
> > The following won't work:
> >
> > if x = 1 then
> > doSomething
> > else if x = 2 then
> > if y = 3 then doSomethingElse
> > else if x = 2 then -- little lost else
> > doThirdThing
> > end if
> >
> > This is because the y = 3 line thinks the next else belongs to it, like
> so:
> >
> > if x = 1 then
> > doSomething
> > else if x = 2 then
> > if y = 3 then doSomethingElse
> > else if x = 2 then
> > doThirdThing
> > end if
> >
> > Because the following is a valid if-else format:
> >
> > if true then Blah1
> > else Blah2
> >
> > If there's another line between the dangling if and the parent
> structure's
> > next else, all is fine.
> >
> > if x = 1 then
> > doSomething
> > else if x = 2 then
> > if y = 3 then doSomethingElse
> > get it
> > else if x = 2 then
> > doThirdThing
> > end if
> >
> > But the best practice, as Terry said, is to use the long form in
> situations
> > like these.
> >
> > if x = 1 then
> > doSomething
> > else if x = 2 then
> > if y = 3 then
> > doSomethingElse
> > end if
> > else if x = 2 then
> > doThirdThing
> > end if
> >
> > That way the code is clear to everyone, at least in regard to
> > else-ownership. Clarity of the code itself varies by programmer... :)
> >
> >
> > ~ Chris Innanen
> > ~ Nonsanity
> >
> >
> >
> > On Tue, Mar 1, 2011 at 7:40 PM, Bob Sneidar <bobs at twft.com> wrote:
> >
> >> Hi all.
> >>
> >> I just came across a curious issue where I had an if then else control
> >> structure inside another if then structure.
> >>
> >> I *thought* I used toe be able to use the form
> >>
> >> if statement then
> >> -- do somestuff
> >> else if anotherstatement then
> >> -- do someotherstuff
> >> else
> >> -- do defaultstuff
> >> end if
> >>
> >> When I nested this inside another if then else control structure it told
> me
> >> I was missing an end if! However if I converted the above structure to a
> >> switch control structure the script compiled fine. Have I stumbled upon
> >> something here? It kind of makes sense to me because the compiler may be
> >> having trouble knowing which control structure *else if
> anotherstatement*
> >> belongs to.
> >>
> >> This is not a problem per se, but I am just curious and it may help
> someone
> >> else who encounters it in the future to not spend an hour or two poring
> over
> >> code that is technically correct but won't compile.
> >>
> >> Bob
>
> --
>
> official ChatRev page:
> http://bjoernke.com?target=chatrev
>
>
> Chat with other RunRev developers:
> go stack URL "http://bjoernke.com/chatrev/chatrev1.3b3.rev"
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
--
http://www.andregarzia.com All We Do Is Code.
More information about the use-livecode
mailing list