# {...} (区块)

一对大括号表示一个区块。区块通常和函数、Else 、Loop、While-loop 和 IF 命令一起使用。

{
空行或多行命令
}

#### 注意

区块被用来绑定两行或多行命令。它也能用来改变一个 ELSE 从属于哪个 IF 语句，例如在此例中，区块迫使 ELSE 从属于第一个 IF 语句而不是第二个：

    if var1 = 1
    {
       if var2 = abc
          sleep, 1
    }
    else
       return

虽然区块能被用在任何地方，不过目前它们只能和函数、Else 、Loop 或一个 IF 类型的命令例如 IfEqual 或 IfWinExist 一起使用时才有意义。

如果 IF 、ELSE 、Loop 或 While-loop 仅有一行命令，此命令不需要被装入区块。不过，这样做可以提高脚本的可读性或可维护性。

区块可以为空(不含任何命令)，当你想要注解掉区块的内容而不移除它本身时会变得很有用。

单个正确的大括号 (OTB, K&R 类型): OTB 类型可随意地使用在后面这些地方：IF 语句的表达式、"else" 关键字、 while-loops、标准循环、函数定义。这种类型将区块的开始大括号放在区块控制语句的同一行而不是它的下一行上。例如：

    if (x < y) {
    ...
    } else {
    ...
    }
    While x < y {
        ...
    }
    Loop %RepeatCount% {
    ...
    }
    MyFunction(x, y) {
    ...
    }

类似地，一个命令或其他动作可以存在于一个大括号的右边(除了单个正确的大括号类型的开始大括号外)。例如：

    if x = 1
    { MsgBox 这行出现在一个开始大括号的右边。它在 IF 语句为真时执行。
       MsgBox 这是下一行。
    } MsgBox 这行出现在一个结束大括号的右边。它无条件地执行。

#### 相关命令

Functions, While-loop, Loop, Else, If, If(Expression)

#### 示例

    if x = 1
    {
       MsgBox, 测试1
       Sleep, 5
    }
    else
       MsgBox, 测试2

翻译：天堂之门 menk33@163.com 2008年11月5日