{...} (block)

ブロックとは、中括弧で囲まれた1つまたは複数ののことです。一般に、関数定義制御フロー文と一緒に使用されます。

{
    Statements
}

備考

ブロックは、2つ以上のを結合するために使用されます。また、Else文がどのIf文に属するかを変更することもできます。この例では、Else文が2番目のIf文ではなく、1番目のIf文に属するようにブロックが強制します。

if (Var1 = 1)
{
    if (Var2 = "abc")
        Sleep 1
}
else
    return

ブロックはどこでも使えますが、現状では関数定義IfElseLoop文TryCatchFinallyで使う場合にのみ意味を持ちます。

上記の制御フロー文のうち、文が1つしかない場合、その文はブロックで囲む必要はありません(関数定義には使えません)。しかし、そうすることでスクリプトの読みやすさや保守性が向上する場合もあります。

ブロックは、空(0個のステートメントを含む)であってもよい。これは、ブロック自体を削除せずにブロックの内容をコメントアウトしたい場合に便利です。

ワン・トゥルー・ブレース(OTB、K&Rスタイル):OTBスタイルは、以下の場所でオプションとして使用することができます。function definitions, If, Else, Loop, While, For, Try, Catch, 及び Finally. このスタイルでは、ブロックの開始ブレースをブロックの制御文と同じ行に配置し、ブロックの下に単独で配置することはありません。事例:

MyFunction(x, y) {
    ...
}
if (x < y) {
    ...
} else {
    ...
}
Loop RepeatCount {
    ...
}
While x < y {
    ...
}
For k, v in obj {
    ...
}
Try {
    ...
} Catch Error {
    ...
} Finally {
    ....
}

同様に、ブレース(One True Braceスタイルのオープンブレースを除く)の右側にも文が存在する場合があります。事例:

if (x = 1)
{ MsgBox "This line appears to the right of an opening brace. It executes whenever the IF-statement is true."
    MsgBox "This is the next line."
} MsgBox "This line appears to the right of a closing brace. It executes unconditionally."

Function Definitions, Control Flow Statements, If, Else, Loop Statements, Try, Catch, Finally

MsgBox "test1"Sleep 5の2つの文を中括弧で囲むことで、If文は、xが1に等しい場合に両方を実行すべきことを知ることができます。

if (x = 1)
{
    MsgBox "test1"
    Sleep 5
}
else
    MsgBox "test2"