Ada 程式設計/關鍵字/and
外觀
(重定向自 Ada 程式設計/運算子/and)
X : Boolean := A > 10 and A < 20;
短路運算子用於使布林表示式的部分的計算條件化:and then,or else。這永遠不應該為了加速計算而完成(對於現代最佳化編譯器來說,它可能不會產生這種效果)。正確的使用方式是防止計算已知會引發異常的表示式。
ifDog /=nullandthenG (Dog)thenWalk (Dog);endif;
在上面的示例中,G (Dog)只有在指標Dog不是null時才會被呼叫,也就是說,它實際上指向了一些東西。
實際上,and then 和 or else 在參考手冊的意義上不是運算子,它們被稱為“短路控制形式”。區別在於(真)運算子可以重新定義(即過載),而它們不能。但是,它們對於任何布林型別都是定義的。
由於 Ada 允許對錶達式的引數進行平行計算,因此短路運算子不是計算布林表示式的標準方式。在最終計算結果保證相同的情況下,編譯器被允許使用短路計算。
and 運算子應用於來自左陣列和右陣列的每個布林元素對。結果與左運算元具有相同的界限。
typeDay_Of_Monthisrange1 .. 31;typeMonth_Arrayisarray(Day_Of_Month)ofBoolean; X : Month_Array := Function_1; Y : Month_Array := Function_2; Z : Month_Array := XandY;
運算子 and 可以與 模型別 一起使用來執行按位操作。
此語言特性僅從 Ada 2005 開始可用。
typeProgrammerisnewPersonandPrintablewithrecordSkilled_In : Language_List;endrecord;
- 2.9 保留字 (註釋)
- 3.9.4 介面型別 (註釋)
- 4.4 表示式 (註釋)
- 附錄 P (資訊性) 語法摘要 (註釋)
| Ada 關鍵字 | ||||
|---|---|---|---|---|
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 運算子 | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
