YENGswitch
From OpenSimulator
(Difference between revisions)
												
			m (Add into category)  | 
			m (Add pre html tag)  | 
			||
| Line 2: | Line 2: | ||
break, default and '...' are keywords used with it.<br>  | break, default and '...' are keywords used with it.<br>  | ||
| − | + | Simple string (command) example:  | |
| − | + | <pre>  | |
| − | + | switch (command)  | |
| − | + | {  | |
| − | + |     case "turnleft":  | |
| − | + |     {  | |
| − | + |         TurnLeft ();  | |
| − | + |         break;  | |
| − | + |     }  | |
| − | + |     case "turnright":  | |
| − | + |     {  | |
| − | + |         TurnRight ();  | |
| − | + |         break;  | |
| − | + |     }  | |
| − | + |     default: llOwnerSay ("Dont know how to handle " + command);  | |
| + | }  | ||
| + | </pre>  | ||
| − | + | A simple integer example  | |
... can be used to define a range  | ... can be used to define a range  | ||
| − | + | <pre>  | |
| − | + | switch (command)  | |
| − | + | {  | |
| − | + |     case 4:  | |
| − | + |     {  | |
| − | + |         llSay(PUBLIC_CHANNEL, "4");  | |
| − | + |         break;  | |
| − | + |     }  | |
| − | + |     case 5 ... 20:  | |
| − | + |     {  | |
| − | + |         // ... defines a range  | |
| − | + |         llSay(PUBLIC_CHANNEL, "r");  | |
| − | + |         break;  | |
| − | + |     }  | |
| − | + |     default: llOwnerSay ("Dont know how to handle " + command);  | |
| + | }  | ||
| + | </pre>  | ||
| − | + | Other:  | |
| − | + | <pre>  | |
| − | + | switch (command)  | |
| − | + | {  | |
| − | + |     case 4:  | |
| − | + |         llSay(PUBLIC_CHANNEL, "4");  | |
| − | + |         break;  | |
| − | + |     case 5 ... 20:  | |
| − | + |         llSay(PUBLIC_CHANNEL, "5 to 20");  | |
| − | + |         break;  | |
| − | + |     case 22:  | |
| − | + |     case 27:  | |
| − | + |         llSay(PUBLIC_CHANNEL, "other");  | |
| − | + |         break;  | |
| − | + |     default: llOwnerSay ("dont know how to handle " + command);  | |
| − | + | }  | |
| + | </pre>  | ||
The different case ranges can not overlap.  | The different case ranges can not overlap.  | ||
[[Category:Scripts]]  | [[Category:Scripts]]  | ||
Revision as of 04:48, 22 September 2020
switch can only work in integer expressions, or strings
break, default and '...' are keywords used with it.
Simple string (command) example:
switch (command)
{
    case "turnleft":
    {
        TurnLeft ();
        break;
    }
    case "turnright":
    {
        TurnRight ();
        break;
    }
    default: llOwnerSay ("Dont know how to handle " + command);
}
A simple integer example ... can be used to define a range
switch (command)
{
    case 4:
    {
        llSay(PUBLIC_CHANNEL, "4");
        break;
    }
    case 5 ... 20:
    {
        // ... defines a range
        llSay(PUBLIC_CHANNEL, "r");
        break;
    }
    default: llOwnerSay ("Dont know how to handle " + command);
}
Other:
switch (command)
{
    case 4:
        llSay(PUBLIC_CHANNEL, "4");
        break;
    case 5 ... 20:
        llSay(PUBLIC_CHANNEL, "5 to 20");
        break;
    case 22:
    case 27:
        llSay(PUBLIC_CHANNEL, "other");
        break;
    default: llOwnerSay ("dont know how to handle " + command);
}
The different case ranges can not overlap.