<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1632085368384154" crossorigin="anonymous"></script><script src="https://autohotkey.top/gtag.js"></script></head> <body> <h1>{...} (区块)</h1> <p>区块是用大括号括起来的一个或多个<a href="../Concepts.htm#statement">语句</a>. 通常与<a href="../Functions.htm#define">函数定义</a>和<a href="../Language.htm#control-flow">控制流语句</a>一起使用.</p> <pre class="Syntax"> { <i>语句</i> }</pre> <h2 id="Remarks">备注</h2> <p>区块用于将两行或多行<a href="../Concepts.htm#statement">语句</a>绑定在一起. 它还可以用来改变 <a href="Else.htm">Else 语句</a>从属于哪个 <a href="If.htm">If 语句</a>, 例如在此例中, 区块强制 Else 语句从属于第一个 If 语句, 而不是第二个:</p> <pre>if (Var1 = 1) { if (Var2 = "abc") Sleep 1 } else return</pre> <p>尽管区块可以在脚本中的任何位置使用, 不过目前它们仅在与<a href="../Functions.htm#define">函数定义</a>, <a href="If.htm">If</a>, <a href="Else.htm">Else</a>, <a href="../Language.htm#loop-statement">Loop 语句</a>, <a href="Try.htm">Try</a>, <a href="Catch.htm">Catch</a> 或 <a href="Finally.htm">Finally</a> 一起使用时才有意义.</p> <p>如果上面提到的任何控制流语句中仅含单行语句, 那么该语句可以不需要括在区块中(这对于函数定义不适用). 不过, 在某些情况下, 这样做可能会增强脚本的可读性和可维护性.</p> <p>区块中可以为空(不含任何语句), 当您想注释区块中的内容而不移除区块时这很有用.</p> <p id="otb"><strong>One True Brace(OTB, K&amp;R 样式):</strong> 可以在以下位置选择使用 OTB 样式: <a href="../Functions.htm#define">函数定义</a>, <a href="If.htm">If</a>, <a href="Else.htm">Else</a>, <a href="../Language.htm#loop-statement">Loop</a>, <a href="While.htm">While</a>, <a href="For.htm">For</a>, <a href="Try.htm">Try</a>, <a href="Catch.htm">Catch</a> 和 <a href="Finally.htm">Finally</a>. 这种样式中区块的开括号与区块的控制语句在同一行, 而不是在其下一行. 例如:</p> <pre>MyFunction(x, y) { ... } if (x &lt; y) { ... } else { ... } Loop RepeatCount { ... } While x &lt; y { ... } For k, v in obj { ... } Try { ... } Catch Error { ... } Finally { .... }</pre> <p>同样地, 语句也可以放在大括号的后面(但不包括 One True Brace 样式的开括号). 例如:</p> <pre>if (x = 1) { MsgBox "这一行出现在左大括号的右边. 只要 IF 语句为真, 它就会执行." MsgBox "这是下一行." } MsgBox "这一行出现在右大括号的右边. 它无条件地执行." </pre> <h2 id="Related">相关</h2> <p><a href="../Functions.htm#define">函数定义</a>, <a href="../Language.htm#control-flow">控制流语句</a>, <a href="If.htm">If</a>, <a href="Else.htm">Else</a>, <a href="../Language.htm#loop-statement">Loop 语句</a>, <a href="Try.htm">Try</a>, <a href="Catch.htm">Catch</a>, <a href="Finally.htm">Finally</a></p> <h2 id="Examples">示例</h2> <div class="ex" id="ExBasic"> <p><a class="ex_number" href="#ExBasic"></a> 通过将两个语句 <code>MsgBox, "test1"</code> 和 <code>Sleep, 5</code> 用大括号括起来, 如果 <var>x</var> 等于 1, If 语句同时执行这两个语句.</p> <pre>if (x = 1) { MsgBox "test1" Sleep 5 } else MsgBox "test2"</pre> </div> <a href="https://dftg.net">dftg</a><!-- Cloudflare Pages Analytics --><script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "d5a9c4fcb9b6482fa53ce820d892f969"}'></script><!-- Cloudflare Pages Analytics --><script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"rayId":"938cfa5e1b35636f","version":"2025.4.0-1-g37f21b1","r":1,"serverTiming":{"name":{"cfExtPri":true,"cfL4":true,"cfSpeedBrain":true,"cfCacheStatus":true}},"token":"51750bb5dc4f40cc91a5ec55c63bbc01","b":1}' crossorigin="anonymous"></script> </body> </html>