switch/case

OpenMatrix language also supports a variant of this using switch/case/otherwise.

switch value
      case target1
            block1
      case target
            blockN
      otherwise
            blockOtherwise
end

The switch value is an expression to be tested against each target expression (listed as separate case statements). It must evaluate to either a scalar or a string. If the target expression for a case exactly matches the switch value, the corresponding block will be run. Only one block will be run for any given switch statement. If the switch value does not match any of the case targets, the blockOtherwise code will be run. The otherwise block is optional.

Example 1

value = 2
switch value
      case 1
            disp('hello 1')
      case 2
            disp('hello 2')
      case 3
            disp('hello 3')
end

Example 2

value = 2
switch value
      case 1
            disp('hello 1')
      case 2
            disp('hello 2')
      case 3
            disp('hello 3')
      otherwise
            disp('well.. none of the cases')
end

Case statements may contain multiple values enclosed in {} and separated by ,’s.

Example 3

value = 2
switch value
      case {1,2,3}
            disp('1-3')
      case {4,5,6}
            disp('4-6')
end