END(构造)
用途
END (Construct) 语句终止构造的执行。 构造终止语句表列出了结束每个构造的相应语句。
| 构造 | 终止语句 |
|---|---|
| ASSOCIATE 1 | END ASSOCIATE |
| BLOCK 2 | END BLOCK |
| DO | END DO |
| DO CONCURRENT 2 | |
| DO WHILE | |
| FORALL | END FORALL |
| IF | END IF |
| SELECT CASE | END SELECT |
| SELECT TYPE 1 | |
| WHERE | END WHERE |
备注信息:
|
|
语法
- ASSOCIATE_construct_name (Fortran 2003)
- 用于标识 ASSOCIATE 构造的名称。
- BLOCK_construct_name (Fortran 2008)
- 用于标识 BLOCK 构造的名称。
- DO_construct_name
- 一个代表 DO,
DO
CONCURRENT
或 DO WHILE结构。 - FORALL_construct_name
- 用于标识 FORALL 构造的名称。
- IF_construct_name
- 用于标识 IF 构造的名称。
- CASE_construct_name
- 用于标识 SELECT CASE 构造的名称。
- SELECT_TYPE_construct_name (Fortran 2003)
- 用于标识 SELECT TYPE 构造的名称。
- where_construct_name
- 用于标识 WHERE 构造的名称。
规则
如果您为 END DO语句,您可以将其作为带标签或未带标签的语句的最终语句 DO,
DO
CONCURRENT
或 DO WHILE结构。 一个 END
DO语句终止了最内层的 DO,
DO CONCURRENT
或 DO WHILE结构。 如果一个 DO,
DO CONCURRENT
语句未指定语句标签,则语句的终端为 DO WHILE语句未指定语句标签,则 DO或 DO WHILE结构必须是一个 END DO语句。
您可以从以下构造的内部或外部分支到其相应的 END 语句。
| 构造名称 | 从内部分支 | 从外部分支 | 分支目标 |
|---|---|---|---|
| ASSOCIATE 1 | √ | END ASSOCIATE 1 | |
| BLOCK 2 | √ | √ | END BLOCK 2 |
| DO | √ | END DO | |
| DO CONCURRENT 2 | √ | ||
| DO WHILE | √ | ||
| IF 3 | √ | √ | END IF |
| CASE | √ | END SELECT | |
备注信息:
|
|||
如果在开始构造的语句上指定构造名,那么终止构造的 END 语句必须具有相同的构造名。 相反,如果未在开始构造的语句上指定构造名,那么不得在 END 语句上指定构造名。
END WHERE 语句不得是分支目标语句。
示例
INTEGER X(100,100)
DECR: DO WHILE (I.GT.0)
...
IF (J.LT.K) THEN
...
END IF ! Cannot reference a construct name
I=I-1
END DO DECR ! Reference to construct name DECR mandatory
END
以下示例显示了 where_construct_name 的无效使用:
BW: WHERE (A /= 0)
B = B + 1
END WHERE EW ! The where_construct_name on the END WHERE statement
! does not match the where_construct_name on the WHERE
! statement.
