ブロックとは、中括弧で囲まれた1つまたは複数の文のことです。一般に、関数定義や 制御フロー文と一緒に使用されます。
{ Statements }
ブロックは、2つ以上の文を結合するために使用されます。また、Else文がどのIf文に属するかを変更することもできます。この例では、Else文が2番目のIf文ではなく、1番目のIf文に属するようにブロックが強制します:
if (Var1 = 1) { if (Var2 = "abc") Sleep 1 } else return
ブロックはどこでも使えますが、現状では関数定義、If、Else、Loop文、Try、Catch、Finallyで使う場合にのみ意味を持ちます。
上記の制御フロー文のうち、文が1つしかない場合、その文はブロックで囲む必要はありません(関数定義には使えません)。しかし、そうすることでスクリプトの読みやすさや保守性が向上する場合もあります。
ブロックは、空(0個のステートメントを含む)であってもよい。これは、ブロック自体を削除せずにブロックの内容をコメントアウトしたい場合に便利です。
One True Brace(OTB、K&Rスタイル):OTBスタイルは、以下の場所でオプションとして使用することができます:関数定義、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."
関数定義、制御フロー文、If、Else、Loop文、Try、Catch、Finally