X : Boolean := A < 10or A > 20;In the below example the functionG is only called whenF(X) returns the valueFalse.
ifF(X)orelseG(Y)thenWalk_The_Dog;endif;
This shortcut operator is sometimes used to speed up the evaluation of boolean expressions, but the Ada Style Guide recommends to compare the performance of both forms before switching one to the other. In general, it is good idea to useorelse in sake of performance only when the second expression involves a function call.
Theorelse form is also used when the second expression is known to raise an exception unless the first expression isFalse.
Unlike C/C++, Ada short-cut operators are not the standard way to evaluate boolean expressions. This is because Ada is designed to do by default what is generally safer, but lets the programmer request a different behaviour.
The or operator is applied to each pair of boolean elements from the left and right arrays. The result has the same bounds as the left operand.
typeDay_Of_Monthisrange1 .. 31;typeMonth_Arrayisarray(Day_Of_Month)ofBoolean;X : Month_Array := Function_1;Y : Month_Array := Function_2;Z : Month_Array := XorY;
The operatoror could be used withmodular types to perform bitwise operations.
SeeAda Programming/Tasking#Selective waiting.
SeeAda Programming/Tasking#Timeout.
| Ada Keywords | ||||
|---|---|---|---|---|
abort | else | new | return | |
abs | elsif | not | reverse | |
abstract (Ada 95) | end | null | ||
accept | entry | select | ||
access | exception | of | separate | |
aliased (Ada 95) | exit | or | some (Ada 2012) | |
all | others | subtype | ||
and | for | out | synchronized (Ada 2005) | |
array | function | overriding (Ada 2005) | ||
at | tagged (Ada 95) | |||
generic | package | task | ||
begin | goto | parallel (Ada 2022) | terminate | |
body | pragma | then | ||
if | private | type | ||
case | in | procedure | ||
constant | interface (Ada 2005) | protected (Ada 95) | until (Ada 95) | |
is | use | |||
declare | raise | |||
delay | limited | range | when | |
delta | loop | record | while | |
digits | rem | with | ||
do | mod | renames | ||
requeue (Ada 95) | xor | |||
| Ada Operators | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|