{...} (block)
한 쌍의 활괄호는 블록을 뜻합니다. 블록은 전형적으로 함수, Else, Loop, While-loop, 그리고 IF-명령어와 함께 사용됩니다.
{ 0개 이상의 명령어 나열 }
논평
블록은 두 개 이상의 명령어들을 하나로 묶는 데 사용됩니다. 또 어느 IF에 ELSE가 속하는지 바꾸는 데에도 사용됩니다. 다음 예제와 같이 블록은 ELSE를 두 번째가 아니라 첫 번째 IF에 속하게 만듭니다:
if var1 = 1 { if var2 = abc sleep, 1 } else return
블록은 아무데나 사용할 수 있지만, 현재는 오직 functions, Else, Loop, 또는 IF-유형의 명령어들 (예를 들어 IfEqual 또는 IfWinExist)과 사용될 때만 의미가 있습니다.
만약 IF, ELSE, Loop, While-회돌이, 또는 For-회돌이에 명령어가 하나 밖에 없다면, 그 명령어는 블록에 쌀 필요가 없습니다. 그렇지만, 스크립트의 가독성을 향상시키고 유지관리성을 용이하게 하기 위해 그래야 할 경우가 있습니다.
블록은 비어 있어도 됩니다 (명령어가 없음). 이 경우는 블록 자체를 제거하지 않고 블록의 내용을 주석 처리하고 싶을 때 유용합니다.
One True Brace (OTB, K&R 스타일): OTB 스타일을 선택적으로 다음과 같은 경우에 사용할 수 있습니다: if-서술문의 표현식, else 키워드, while-회돌이, For-회돌이, 보통 회돌이, 함수 정의, Try, Catch, 그리고 Finally. 이 스타일은 블록의 시작 활괄호를 블록의 제어 서술문과 같은 줄에 배치합니다. 그 줄 아래 따로 두지 않습니다. 예를 들어:
if (x < y) { ... } else { ... } While x < y { ... } For k,v in obj { ... } Loop %RepeatCount% { ... } MyFunction(x, y) { ... } Try { ... } Catch e { ... } Finally { .... }
비슷하게, 명령어 또는 기타 조치는 활괄호 우측에 존재합니다 (단, One True Brace 스타일의 여는 괄호는 제외합니다). 예를 들어:
if x = 1 { MsgBox 이 줄은 여는 괄호의 오른쪽에 나타납니다. IF-서술문이 참일 때마다 실행됩니다. MsgBox 이 줄은 다음 줄입니다. } MsgBox 이 줄은 닫는 괄호의 오른쪽에 나타납니다. 무조건 실행됩니다.
관련 항목
Functions, While-회돌이, Loop, Else, If, If(Expression)
예제
if x = 1 { MsgBox, test1 Sleep, 5 } else MsgBox, test2