Inline If Statements: Difference between revisions

From Sierra Wiki
Jump to navigationJump to search
Andrew Branscom (talk | contribs)
No edit summary
Andrew Branscom (talk | contribs)
No edit summary
Line 1: Line 1:
[[Category:SCI Pages]]
[[Category:SCI Pages]]
[[Category:SCI Pages to be Edited]]
[[Category:SCI Pages to be Edited]]
<div align="center"><span style="font-size: 22pt">Inline If Statements</span><br />''By [[Shane Cloud]]''</div>
&nbsp;
<div align="center"><span class="Alert">'''''Note:  This article only applies to SCI Companion'''''</div>
<div align="center"><span class="Alert">'''''Note:  This article only applies to SCI Companion'''''</div>
&nbsp;
 
<div align="center"><span style="font-size: 22pt">Inline If Statements</span><br />''By [[Shane Cloud]]''</div>


<br />
<br />

Revision as of 16:36, 29 April 2025


Inline If Statements
By Shane Cloud

 

Note: This article only applies to SCI Companion




Introduction

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) 
  ...
)


References



Also See

  •