Difference between revisions of "Switch Statement"
Line 4: | Line 4: | ||
A JIRA feature request exists at [http://jira.secondlife.com/browse/VWR-1287 VWR-1287]. Please go vote for it if this is important to you. | A JIRA feature request exists at [http://jira.secondlife.com/browse/VWR-1287 VWR-1287]. Please go vote for it if this is important to you. | ||
For now, there is a way to simulate a switch statement by using '''if''' structure with '''return'''. See this example: | |||
<lsl> | |||
listen(integer channel, string name, key id, string message) | |||
{ | |||
// If the first condition is true, the second condition won't be evaluated, like a "switch" would do. | |||
if (channel == PUBLIC_CHANNEL) { | |||
//Any statements here | |||
return; | |||
} | |||
// The second "if" will be executed only if the first condition is false, like a "switch" would do. | |||
if (channel == DEBUG_CHANNEL) { | |||
//Any statements here | |||
return; | |||
} | |||
return; | |||
} | |||
// Using "else" in this structure may not reach the same result. | |||
// Also, it was verified this method prevents lag, differently from use of "else" | |||
</lsl> | |||
Although a switch statement would be helpful. | |||
[[Category:LSL WishList | LSL WishList]] | [[Category:LSL WishList | LSL WishList]] |
Revision as of 09:20, 10 March 2012
Basic C switch statement. This would be especially useful for cycling through constants that don't overlap with each other. (i.e. TYPE_* or ATTACH_*)
mod:Sedric Raymaker-- it would also cut down on huge nested if statements, little surprised is not available, but can work around for now
A JIRA feature request exists at VWR-1287. Please go vote for it if this is important to you.
For now, there is a way to simulate a switch statement by using if structure with return. See this example:
<lsl>
listen(integer channel, string name, key id, string message) {
// If the first condition is true, the second condition won't be evaluated, like a "switch" would do.
if (channel == PUBLIC_CHANNEL) { //Any statements here return; }
// The second "if" will be executed only if the first condition is false, like a "switch" would do.
if (channel == DEBUG_CHANNEL) { //Any statements here return; }
return;
}
// Using "else" in this structure may not reach the same result. // Also, it was verified this method prevents lag, differently from use of "else" </lsl>
Although a switch statement would be helpful.