Lingo Dictionary > A-C > case |  |

case

Syntax

    case expression of
    	expression1 : Statement
    	expression2 :
    		multipleStatements
    		.
    		.
    		.
    	expression3, expression4 :
    		Statement
    	{otherwise:
    		statement(s)}
    end case

Description

Keyword; starts a multiple branching logic structure that is easier to write than repeated `if...then` statements.

Lingo compares the value in `case expression` to the expressions in the lines beneath it, starting at the beginning and continuing through each line in order, until Lingo encounters an expression that matches `case expression`.

When Lingo finds a matching expression, it executes the corresponding statement or statements that follow the colon after the matching expression. When only one statement follows the matching expression, the matching expression and its corresponding statement may appear on the same line. Multiple statements must appear on indented lines immediately below the matching expression.

When more than one possible match could cause Lingo to execute the same statements, the expressions must be separated by commas. (The syntax line containing `expression3` and `expresssion4` is an example of such a situation.)

After Lingo encounters the first match, it stops testing for additional matches.

If the optional `otherwise` statement is included at the end of the case structure, the statements following `otherwise` are executed if there are no matches.

If a `case` statement tests cases that aren't all integer constants, the Export Xtra for Java converts the `case` statement to an `if...then` statement.

Example

The following handler tests which key the user pressed most recently and responds accordingly.

| If the user pressed A, the movie goes to the frame labeled Apple.
| If the user pressed B or C, the movie performs the specified transition and then goes to the frame labeled Oranges.
| If the user pressed any other key, the computer beeps.

    on keyDown
    	case (the key) of
    		"A": go to frame "Apple"
    		"B", "C":
    			puppetTransition 99
    			go to frame "Oranges"
    		otherwise beep
    	end case
    end keyDown

Example

This `case` statement tests whether the cursor is over sprite 1, 2, or 3 and runs the corresponding Lingo if it is:

    case the rollOver of
    	1: puppetSound "Horn"
    	2: puppetSound "Drum"
    	3: puppetSound "Bongos"
    end case