Switch: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
The '''switch''' statement in con is similar to that in C.
The '''switch''' statement in CON is similar to that in C.


   switch <gamevar>
   switch <gamevar>
     case <constant>:
     case <constant>
       <do something>
       <do something>
     [[break]]
     break
     case <constant>:
     case <constant>
       <do something>
       <do something>
     break
     break
Line 13: Line 13:
   endswitch
   endswitch


The '''default''' keyword works like an [[ifvarn]] statement, just like '''case''' works like an [[ifvare]] statement.
The '''case''' keyword works like an [[ifvare]] statement, and '''default''' operates on every possibility that is ''not'' specified by a case statement.
 
Caution:  Nested switches do not work because of the way the CON compiler compiles them. A workaround is to put the nested switch in a separate state, and call that state from inside the first switch.


Caution:  ''Nested switches do not work because of the way the CON compiler compiles them''. A workaround is to put the nested switch in a seperate state, and call that state from inside the first switch.
Also, adding extra [[break]] statements inside a case argument will cause a lot of errors. Again, the workaround is to put the commands that need to be separated in another state, along with the break.


Also, putting extra [[break]] statements inside a case argument will cause a lot of errors. Again, the workaround is to put the commands that need to be seperated in another state, along with the break.
See: [http://www.cplusplus.com/doc/tutorial/control/ Control Structures @ C++ Documentation]


[[Category:EDuke commands]]
[[Category:EDuke commands]]

Revision as of 16:53, 24 February 2011

The switch statement in CON is similar to that in C.

 switch <gamevar>
   case <constant>
     <do something>
   break
   case <constant>
     <do something>
   break
   default
     <do something>
   break
 endswitch

The case keyword works like an ifvare statement, and default operates on every possibility that is not specified by a case statement.

Caution: Nested switches do not work because of the way the CON compiler compiles them. A workaround is to put the nested switch in a separate state, and call that state from inside the first switch.

Also, adding extra break statements inside a case argument will cause a lot of errors. Again, the workaround is to put the commands that need to be separated in another state, along with the break.

See: Control Structures @ C++ Documentation