Talk:Control Structures: Difference between revisions

From Kolmafia
Jump to navigation Jump to search
imported>StDoodle
No edit summary
imported>Heeheehee
m Re: foreach's auto-sort
Line 42: Line 42:


That looks good; I'd add in one line with a different variable though, just to make the differentiation in use clear. Such as an initial check for y > 9000 or something. Then again, I pretty much figured it out from what's on the page, so I'm not sure it's necessary. Perhaps three samples are in order: a simple switch with a generic variable to test, your example, and a "This won't work" example that tries to mix the two. --[[User:StDoodle|StDoodle (#1059825)]] 13:51, 4 May 2010 (UTC)
That looks good; I'd add in one line with a different variable though, just to make the differentiation in use clear. Such as an initial check for y > 9000 or something. Then again, I pretty much figured it out from what's on the page, so I'm not sure it's necessary. Perhaps three samples are in order: a simple switch with a generic variable to test, your example, and a "This won't work" example that tries to mix the two. --[[User:StDoodle|StDoodle (#1059825)]] 13:51, 4 May 2010 (UTC)
Regarding foreach and sorting: since it sorts by index, not by value, that should be mentioned somewhere in that blurb. --[[User:Heeheehee|Heeheehee]] 12:10, 22 June 2010 (UTC)

Revision as of 12:10, 22 June 2010

Ok, old version no longer needed. A couple cleanup requests:

  • add return
  • change looping to flow control OR add a separate section for continue, break & return
  • the above 3 should each have a lv3 heading

--StDoodle (#1059825) 18:57, 18 April 2010 (UTC)

Never mind; the stuff, I fixed it. --StDoodle (#1059825) 19:21, 18 April 2010 (UTC) (Though further info for break, continue & return might be nice).

I was not aware of that use of switch statements, thanks! --StDoodle (#1059825) 13:55, 3 May 2010 (UTC)

  • That use of switch statements was one of the things zarqon and I pushed for when we were cajoling veracity to add it as a mafia feature. It is so much more readable to use a single switch statement than 6 "else if" statements. --Bale 23:33, 3 May 2010 (UTC)

Er, that is to say, I knew how to use them with a top-level variable, but not that you could omit that and use a sep. expression each time... and I could swear I tried to use expressions that way (apparently you can't do both at once!). :P --StDoodle (#1059825) 02:29, 4 May 2010 (UTC)

I'm wondering if a more explicit example is necessary. What I'm talking about is:


switch {
case x < 0 && x == x % 2:
   print(x+" is negative and even");
   break;
case x < 0:
   print(x+" is negative and odd");
   break;
case x == 0:
   print("x is zero");
   break;
case x == x % 2 && x < 10:
   print(x+" is a positive one digit even number");
   break;
case x != x % 2
   print(x+" is an odd number");
   break;
default:
   print(x+" is greater than 9");
}

Do you think an example like that would be helpful? --Bale 03:19, 4 May 2010 (UTC)

That looks good; I'd add in one line with a different variable though, just to make the differentiation in use clear. Such as an initial check for y > 9000 or something. Then again, I pretty much figured it out from what's on the page, so I'm not sure it's necessary. Perhaps three samples are in order: a simple switch with a generic variable to test, your example, and a "This won't work" example that tries to mix the two. --StDoodle (#1059825) 13:51, 4 May 2010 (UTC)

Regarding foreach and sorting: since it sorts by index, not by value, that should be mentioned somewhere in that blurb. --Heeheehee 12:10, 22 June 2010 (UTC)