Difference between revisions of "Do while"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 20: Line 20:
             llSay(0, (string) (++olf));
             llSay(0, (string) (++olf));
         while(olf<5);
         while(olf<5);
    }
}</pre>
<pre>//Counts from 0 to 4
default
{
    state_entry()
    {
        integer olf;
        do
            llSay(0, (string)olf);
        while((++olf)<5);
     }
     }
}</pre>
}</pre>

Revision as of 19:05, 9 March 2007

do loop while (condition);

•  loop Executes once, then executes condition.
•  condition If condition executes true, it then loops back and executes loop again.


Any of the statements can be null statements.

Specification

Conditional Types
Type Condition
integer True if it is not zero.
float True if it is not zero.[1]
string True if its length is not zero.
key True only if it is a valid key and not NULL_KEY.
vector True if the vector is not ZERO_VECTOR.
rotation True if the rotation is not ZERO_ROTATION.
list True if the length is not zero. Note that correct behavior is only seen with Mono-compiled scripts; LSO-compiled scripts incorrectly resolve to false if the list is non-empty: BUG-230728

Examples

//Counts from 1 to 5
default
{
    state_entry()
    {
        integer olf;
        do
            llSay(0, (string) (++olf));
        while(olf<5);
    }
}
//Counts from 0 to 4
default
{
    state_entry()
    {
        integer olf;
        do
            llSay(0, (string)olf);
        while((++olf)<5);
    }
}

Deep Notes

Search JIRA for related Issues

Footnotes

  1. ^ The OpenSim LSL compiler will not do this implicitly. You will need to use an explicit check.