Ada Programming/Keywords/and


float

Logical operatorEdit

Boolean operatorEdit

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

Boolean shortcut operatorEdit

Shortcut operators are used to make the evaluation of parts of boolean expressions conditional: and then, or else. This should never be done to speed up the evaluation (with modern optimizing compilers, it will possibly not have that effect). The correct use is to prevent the evaluation of expressions known to raise an exception.

 if Dog /=  null  and  then G (Dog)  then
   Walk (Dog);
 end  if;

In the example above, G (Dog) is only called when the pointer Dog is not null, i.e. it actually points to something.

Actually and then and or else are not operators in the sense of the reference manual, they are called 'Short-circuit Control Forms'. The difference is that (true) operators can be redefined (i.e. overloaded), whereas these cannot. They are however defined for any boolean type.

Since Ada allows parallel evaluation of the arguments for an expression, shortcut operators are not the standard way of evaluating boolean expressions. In any case where the final result of the evaluation is guaranteed to be the same, the compiler is allowed to use a shortcut evaluation.

Boolean operator on arraysEdit

The and 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  and Y;

Bitwise operatorEdit

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

Adding interfaces to tagged typesEdit

This language feature is only available from Ada 2005 on.

 type Programmer  is  new Person 
                    and Printable
 with 
    record
     Skilled_In : Language_List;
    end  record;

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