# Case

Reserved word used to transfer control to an associated Switch or Default statement.

## Usage

```Switch ( expression )
Begin
Case case-expression:  statements;
Default: statements;
End;```

Control passes to the statements whose case-expression matches the value of the Switch ( expression ). The switch statement can include any number of case instances, but no two case constants within the same switch statement can have the same constant value.

Once the statements associated with a matching case are evaluated, control passes to the end of the switch statement. This is an implied break and is different than a similar structure found in some other languages that require an explicit break.

## Notes

A single Case statement can carry multiple values, as the following example shows:

`Case 1, 2, 3, 4, 5, 6, 20: Value1 = Lowest(Close,3);`

Ranges like this are also valid:

`Case 1 to 6, 20: Value2 = Highest(High,5);`

In both of the above examples, if case-expression equals any number between 1 and 6 or equal to 20, a function is called and assigned to a value.

In addition, logical operators may be used with case statements including: >, <, >=, <=, <> and =.

`Case > Average( Close, 50 ): Value1 = Close ;`

You can also use the EasyLanguage skip word ”is” for better clarity as in the following:

`Case is < Average( High, 75 ): Value1 = High ;`

## Example

```Switch(Value1)
Begin
Case 1 to 5:
Value2 = Value2 + 1;

Case 10, 20, 30:

Value3 = Highest(High,10);

Case is > 40:

Value3 = Value3 + 1;

Default:
Value5 = Value5 + 1;
End;```

The above switch statement Increments Value2 when the switch expression (Value1) is a value from 1 to 5; assigns Value3 to the highest high of 10 bars ago when the switch expression is either 10, 20 or 30; increments Value4 for all switch expression values above 40; and increments Value5 for any other values of the switch expression.