Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: Français - Português - 日本語 - Русский
Scilab Help >> Scilab > Control flow > select

select

select keyword

Syntax

select variable
case value1 then
instructions 1
case value2 then
instructions 2
...
case valuen then
instructions n
[else instructions]
end

Arguments

variable

variable which value to be analyzed.

value1, ..., valuen

values of variable for which there are appropriate instruction blocks instructions 1, ..., instructions n.

instructions

block of valid instructions.

Description

Notes:

  • The only constraint is that each then keyword must be on the same line as corresponding case keyword (or use a continuation mark, see dot).

  • The keyword "then" can be replaced by a carriage return or a comma. instructions1 are executed if expr1=expr, etc.

According to the Code Conventions for the Scilab Programming Language it is recommended:

  • Start each statement on a new line.

  • Write no more than one simple statement per line.

  • Break compound statements over multiple lines.

For example, use:

A = 2
select A
case 1 then
    disp(1)
case 2 then
    disp(2)
else
    disp(3)
end

rather than

A = 2;select A case 1 then disp(1); case 2 then disp(2); else  disp(3); end

Warning: the number of characters used to define the body of any conditional instruction (if while for or select/case) must be limited to 16k.

Examples

while %t do
    n=round(10*rand(1,1))
    select n
        case 0 then
        disp(0)
    case 1 then
        disp(1)
    else
        break
    end
end

See also

  • if — keyword for conditional execution
  • while — while keyword
  • for — keyword entering a non-conditional loop

History

VersionDescription
6.0.0 select is now protected: Assignments like select=1 are no longer possible.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 14:57:05 CET 2019