You can control the flow of script execution by using the following types of statements to manage the order in which operations are executed:.
Scroll only |
---|
scroll-viewport | true |
---|
scroll-pdf | true |
---|
scroll-office | true |
---|
scroll-chm | true |
---|
scroll- |
---|
|
...
...
...
...
Use conditional statements (if, else, else if, switch)
...
Tip |
---|
Tip To make conditional statements easy to debug, group the commands to be executed under the IF statement. |
IF statements
IF statements
The IF statement works as follows: if the test condition is true, the statement is executed.
...
Code Block |
---|
|
if ( 2 < 3 )
{
string $blah = "This worked";
print ($blah);
} |
...
ELSE statements
The ELSE statement always follows the IF statement. The ELSE statement is executed when the preceding IF statement is false.
...
Code Block |
---|
|
if (5 % 2 >1)
{
print "bah";
}
else
{
print "humbug";
} |
ELSE IF statements
ELSE IF statements
The ELSE IF statement is always paired with the IF conditional statement. Unlike the else command which executes a statement when the IF statement is false, the ELSE IF statement requires another test condition to be true, or it will not execute either statement.
...
Code Block |
---|
|
if (-1 >= 1)
{
print "Statement 1";
}
else if (-1 <= 1)
{
print "Statement 2";
} |
SWITCH statements
SWITCH statements
The switch statement is a conditional statement that executes a code block depending on which one of a number of given cases is matched to the switch expression.
...
Tip |
---|
Tip You can use Interruption statements to affect the flow control in looping statements. |
WHILE statements
WHILE statements
A WHILE looping statement continuously executes designated statements as long as a specific condition remains true.
...
Code Block |
---|
|
int $PJ = 5;
while ($PJ > 0)
{
print
("There are " + string($PJ) + " P.J. sandwiches left.");
$PJ = $PJ - 1;
}
print ("Houston, we have a problem!"); |
...
DO WHILE statements
A DO WHILE looping statement executes a specific statement then checks whether or not to repeat the loop. This ensures that the statement is executed at least once.
...
Code Block |
---|
|
int $peanuts = 1;
do {
print ("Elephants work for peanuts");
$peanuts += 1;
print ($peanuts);
}
while ( $peanuts < 10); |
...
FOR statements
A FOR looping statement provides loop control that has initialization, test, and an increment statement.
...
Code Block |
---|
|
//Define the statement you are going to print each iteration
string $statement;
//Define variables to use as counters
int $i, $ j;
//Start the $i loop and specify start, end, and amount to increment
for( $i = 1; $i < 6; $i += 1 ) {
//Start the $ j loop and specify start, end, and amount to increment
for( $j = 1; $j < 15; $j += 2 ) {
//Tell Shogun Post to print something if $i < $J
if( $i < $j )
$statement = string( $i ) + " is less than " + string( $j );
//Tell Shogun Post to print something else if $i > $j
else if( $i > $j )
$statement = string( $i ) + " is greater than " + string( $j );
//Tell Shogun Post what to print if the two counters are equal
else
$statement = "This is what happens when things coincide";
//Tell Shogun Post to actually print the statement you've assembled
print( $statement );
//Close the second loop
}
//Close the first loop
} |
...
Code Block |
---|
|
// Courtesy of Jake Wilson of SCEA
// Initialize Variables
print " ";
// Create array of children under 'Actor' Mary's character node
string $childarray[] = `getChildren Mary`;
// Determine # of children
int $childcount = `getCount $childarray`;
// Create a $childarrayloop to hold a number
int $childarrayloop = 0;
// Print an empty string
string $ proptest;
// Start a loop which run once for each of Mary's children
for ( $childarrayloop=0 ;
$childarrayloop < $childcount ;
$childarrayloop +=1 ){
// print name of current child marker in array
print ( string ($ childarray[$childarrayloop] ) );
// return the name of the marker and compare the name
// of the marker to the name"LFWT"
$ proptest = ` getStringProperty $ childarray[$childarrayloop] Name`;
if ($ proptest==LKNE){
// if that LFWT marker is found, this tells the loop to quit
$ childarrayloop=$childcount;
print ( "EXITING LOOP" );
}
} |
Use interruption statements (break)
...