### 13.6.2 语句标签

[](<>)[](<>)[](<>)[](<>)[](<>)

```
[begin_label:] BEGIN
    [statement_list]
END [end_label]

[begin_label:] LOOP
    statement_list
END LOOP [end_label]

[begin_label:] REPEAT
    statement_list
UNTIL search_condition
END REPEAT [end_label]

[begin_label:] WHILE search_condition DO
    statement_list
END WHILE [end_label]
```

允许使用标签[`开始...结束`](begin-end.html)块和[`环形`](loop.html),[`重复`](repeat.html)， 和[`尽管`](while.html)陈述。这些语句的标签使用遵循以下规则：

-   *`开始标签`*后面必须跟一个冒号。

-   *`开始标签`*可以不给*`结束标签`*.如果*`结束标签`*存在，它必须与*`开始标签`*.

-   *`结束标签`*不能没有*`开始标签`*.

-   同一嵌套级别的标签必须是不同的。

-   标签最长可达 16 个字符。

    要引用标记结构中的标签，请使用[`迭代`](iterate.html)要么[`离开`](leave.html)陈述。以下示例使用这些语句继续迭代或终止循环：


```
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 10 THEN ITERATE label1; END IF;
    LEAVE label1;
  END LOOP label1;
END;
```

块标签的范围不包括块内声明的处理程序的代码。有关详细信息，请参阅[第 13.6.7.2 节，“DECLARE ... HANDLER 语句”](declare-handler.html).
