Ada 程式設計/關鍵字/for
外觀
此關鍵字用於
如今,由於一些技術細節,表示子句在參考手冊的最新版本中正式稱為方面子句,儘管表示子句是 Ada 程式設計師中更廣泛使用的名稱。作為歷史記錄,它們在 Ada 83 之前的提案中被稱為表示規範(rep specs)。[1]
[loop name :]forvarin[reverse] [typerange] rangeloop...endloop[loop name];
其中範圍可以是
- 顯式範圍,例如“
low .. high”, - 標量或陣列型別的範圍:
type'Range(或type'Range(n)用於多維陣列型別) - 陣列的範圍:
array'Range(或array'Range(n)用於多維陣列)
關鍵字in 也可以後跟一個可迭代物件。這透過包含在Ada.Iterator_Interfaces 中定義的介面之一的型別來概括迭代。此語言特性是在 Ada 2012 中引入的。
另一種概括的迴圈迭代形式使用關鍵字of 代替in。然後迴圈引數直接引用陣列或可迭代容器型別的元件。此語言特性是在 Ada 2012 中引入的。
[loop name :]forvar [: type]of[reverse] iterableloop...endloop[loop name];
記錄表示子句指定記錄的佈局 方面。
列舉表示子句指定列舉型別的編碼 方面。
參見 Ada 程式設計/表示子句。
此語言特性是在 Ada 2012 中引入的。
量化表示式是布林表示式。它們要麼是真要麼是假,要麼傳播評估期間引發的任何異常。
全稱量化 表示式
(forallvarinrange => predicate) (forallvarofiterable => predicate)
當範圍(可迭代物件)中的所有值都使謂詞產生真時,這兩種形式都將評估為真。謂詞的評估在以下兩種情況下停止:所有迴圈引數var的值都已耗盡,或者當對某個值的評估產生假(短路)時。
存在量化 表示式
(forsomevarinrange => predicate) (forsomevarofiterable => predicate)
當範圍(可迭代物件)中的某些值使謂詞產生真時,這兩種形式都將評估為真。謂詞的評估在以下兩種情況下停止:所有迴圈引數var的值都已耗盡,或者當對某個值的評估產生真(短路)時。
- 2.9 保留字 (註釋)
- 附錄 P(資訊性)語法摘要 (註釋)
- 5.5 迴圈語句 (註釋)
- 13.3 操作和表示屬性 (註釋)
- 13.4 列舉表示子句 (註釋)
- 13.5.1 記錄表示子句 (註釋)
- 附錄 J.7 At 子句 (註釋)(已過時)
- 13.5:地址子句(已過時)
- ↑ 約翰·巴恩斯 (2003-03-25). 高完整性軟體 - SPARK 安全與安全方法. Addison-Wesley. ISBN 0-321-13616-0. 檢索於 2008-06-06.
表示子句現在嚴格地稱為方面子句 - 術語在 2000 年 Ada 95 修正案中進行了更改,原因很微妙,我們不必擔心;Ada 歷史學家可能會回想起,它們在 1983 年的 ANSI 標準化之前被稱為表示規範(rep specs)。這些各種術語都仍在使用中,讀者將在文獻中遇到它們。(pp.212-213)
| 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
|
|||
