Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.0 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> Scilab > Control flow > if


keyword for conditional execution


if expr1 then
elseif expri then


expr1, expri

logical expressions


blocks of valid statements.


The if statement evaluates a logical expression and executes a group of statements when the expression is true.

The expri are expressions with numeric or boolean values. If expri is a non-scalar value then the condition is true only if all entries of this value are true or different from zero.

The optional elseif and else provide for the execution of alternate groups of statements. An end keyword, which matches the if, terminates the last group of statements. The line structure of if is not significant, the only constraint is that each then keyword must be on the same line as its corresponding if or elseif keyword.

The keyword then can be replaced by a carriage return or a comma.

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:

if rand(1,1) > 0.5 then

rather than

if rand(1,1) > 0.5 then disp("True"); else disp("False"); end
Tthe number of characters used to define the body of any conditional instruction (if while for or select/case) must be limited to 16k.


for j = 1:3,
  if i == j then
    a(i,j) = 2;
  elseif abs(i-j) == 1 then
    a(i,j) = -1;
  else a(i,j) = 0;

See also

  • then — keyword in control flows 'if' and 'select'
  • else — keyword in if-then-else and select-case-then-else
  • elseif — keyword in if-then-else
  • end — end keyword
  • while — while keyword
  • select — select keyword
  • boolean — Scilab Objects, boolean variables and operators & | ~
  • comparison — comparison, relational operators
  • |, || — Binary OR between integers. Logical OR over/between booleans and numbers
  • &, && — Binary AND between integers. Logical AND over/between booleans and numbers
Report an issue
<< halt Control flow pause >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:02:38 CET 2017