ORELSE: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{DISPLAYTITLE:_ORELSE}}
{{DISPLAYTITLE:_ORELSE}}
[[_ORELSE]] is a [[Boolean|boolean]] logical operator that performs short-circuiting inclusive logical disjunction on two expressions.
'''_ORELSE''' is a [[Boolean|boolean]] logical operator that performs short-circuiting inclusive logical disjunction on two expressions.




Line 28: Line 28:


{{PageExamples}}
{{PageExamples}}
''Example:'' OR versus _ORELSE
;Example: OR versus _ORELSE
{{CodeStart}}
{{CodeStart}}
{{Cl|PRINT}} {{Text|<nowiki>"Trying _ORELSE"</nowiki>|#FFB100}}
{{Cl|PRINT}} {{Text|<nowiki>"Trying _ORELSE"</nowiki>|#FFB100}}
Line 66: Line 66:
{{Cl|END FUNCTION}}
{{Cl|END FUNCTION}}
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}}Trying _ORELSE
{{OutputStart}}
Trying _ORELSE
isFruit() called!
isFruit() called!
Probably a strawberry.
Probably a strawberry.
Line 76: Line 77:
Probably a strawberry.
Probably a strawberry.
{{OutputEnd}}
{{OutputEnd}}


{{PageSeeAlso}}
{{PageSeeAlso}}

Revision as of 20:40, 8 December 2024

_ORELSE is a boolean logical operator that performs short-circuiting inclusive logical disjunction on two expressions.


Syntax

result = firstvalue _ORELSE secondvalue


Description

  • A logical operation is said to be short-circuiting if the compiled code can bypass the evaluation of one expression depending on the result of another expression.
  • If the result of the first expression evaluated determines the final result of the operation, there is no need to evaluate the second expression, because it cannot change the final result.
  • Short-circuiting can improve performance if the bypassed expression is complex, or if it involves procedure calls.
  • If either or both expressions evaluate to true, result is true.


Availability


Examples

Example
OR versus _ORELSE
PRINT "Trying _ORELSE"

' _ORELSE performs short-circuiting logical conjunction and hence for "strawberry", only isFruit() is called
IF isFruit("strawberry") _ORELSE isRed("strawberry") _ORELSE isSeasonal("strawberry") THEN
    PRINT "Probably a strawberry."
ELSE
    PRINT "Certainly not a strawberry."
END IF

PRINT
PRINT "Trying OR"

' OR does not performs short-circuiting logical conjunction and hence all is***() functions are called
IF isFruit("strawberry") OR isRed("strawberry") OR isSeasonal("strawberry") THEN
    PRINT "Probably a strawberry."
ELSE
    PRINT "Certainly not a strawberry."
END IF

END

FUNCTION isFruit%% (fruit AS STRING)
    PRINT "isFruit() called!"
    isFruit = (fruit = "strawberry")
END FUNCTION

FUNCTION isRed%% (fruit AS STRING)
    PRINT "isRed() called!"
    isRed = (fruit = "strawberry")
END FUNCTION

FUNCTION isSeasonal%% (fruit AS STRING)
    PRINT "isSeasonal() called!"
    isSeasonal = (fruit = "strawberry")
END FUNCTION
Trying _ORELSE
isFruit() called!
Probably a strawberry.

Trying OR
isFruit() called!
isRed() called!
isSeasonal() called!
Probably a strawberry.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link