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 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 <b...@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@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode