Inline If Statements

From SCI Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Note: This article only applies to SCI Companion

The "if" statement does not return a value, making a the nesting of if's (inline) like this not possible:

Code:
(if (> a ((if(> b c) 5)(else 9)) d)     // This syntax works in SCI Studio, but will not compile in SCI Companion
  ...
)

As indicated above, this code will work in Studio, but will not work in Companion. The way to handle this in Companion is to implement a procedure, which will return a value:

Code:
(procedure public (iif pCondition pTrue pFalse)
   (if (pCondition)
     return pTrue
   )(else 
     return pFalse 
   )
)

The original statement can now be re-written as:

Code:
(if (> a iif(> b c 5 9) d) 
  ...
)