Last modified on 1 March 2011, at 13:29

Ada Programming/Keywords/or


Ada Lovelace 1838.jpg

Logical operatorEdit

Boolean operatorEdit

X : Boolean := A < 10 or A > 20;

Boolean shortcut operatorEdit

In the below example the function G is only called when F(X) returns the value False.

if F(X) or else G(Y) then

    Walk_The_Dog;
 
end if;

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 use or else in sake of performance only when the second expression involves a function call.

The or else form is also used when the second expression is known to raise an exception unless the first expression is False.

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.

Boolean operator on arraysEdit

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.

type Day_Of_Month is range 1 .. 31;            
type Month_Array is array (Day_Of_Month) of Boolean;

X : Month_Array := Function_1;
Y : Month_Array := Function_2;
Z : Month_Array := X or Y;

Bitwise operatorEdit

The operator or could be used with modular types to perform bitwise operations.

Select statementEdit

alternativeEdit

See Ada Programming/Tasking#Selective_waiting.

delayEdit

See Ada Programming/Tasking#Timeout.

See alsoEdit

WikibookEdit

Ada 95 Reference ManualEdit

Ada 2005 Reference ManualEdit

Ada Quality and Style GuideEdit



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 pragma terminate
body private then
if procedure type
case in protected (Ada 95)
constant interface (Ada 2005) until (Ada 95)
is raise use
declare range
delay limited record when
delta loop rem while
digits renames with
do mod requeue (Ada 95) xor


Ada Operators
and and then > + abs &
or or else >= - mod
xor = < * rem in
not /= <= ** / not in