지난 강좌에서 if와 else를 이용한 조건문을 배웠습니다. 이번 강좌에서는 이것들을 응용하는 방법 한 가지와, 내장변수 세 가지를 설명드리겠습니다.

 


 else-if 문 

사실 else-if문은 별도의 구문이 아니라 else와 if가 결합되어 나타나는 문장입니다. if와 else 사이에 조건을 추가할 때 사용하며, 이를 이용하면 여러개의 조건을 다르게 분기시킬 수 있습니다. 아래와 같이 사용합니다.

if (조건1)
{
    // 조건1을 만족할 때의 행동
}
else if (조건 2)
{
    // 조건 2를 만족할 때의 행동
}
else
{
    // 조건 1과 2를 모두 만족하지 않을 때의 행동
}

 

만약 else-if문을 사용하지 않으면 아래와 같이 else문이 두 조건을 모두 감싸지 못합니다. 컴퓨터는 else를 바로 위 if문에만 걸리게 하기 때문입니다.

if (조건1)
{
    // 조건1을 만족할 때의 행동
}
if (조건 2)
{
    // 조건 2를 만족할 때의 행동
}
else
{
    // 조건 2만 만족하지 않을 때의 행동이므로 조건 1의 행동을 했어도 이 부분이 실행된다.
}

 


 else-if 문 예제 

아래 예제를 통해 간단히 실험해볼 수 있습니다. 먼저 else if문을 사용하지 않았을 때 나타날 수 있는 문제를 예제로 보겠습니다.

var := 1
if (var = 1)
{
    MsgBox, var는 1입니다.
}
if (var = 2)
{
    MsgBox, var는 2입니다.
}
else
{
    MsgBox, var는 1도 2도 아닙니다?
}

28강 1.ahk
0.00MB

최하단에 있는 else문은 if (var = 2)에만 걸리기 때문에, var가 1임에도 불구하고 else문 부분이 실행이 됩니다.

 

이럴때는 다음과 같이 else-if문을 사용해준다면 문제가 해결되겠지요.

var := 1
if (var = 1)
{
    MsgBox, var는 1입니다.
}
else if (var = 2)
{
    MsgBox, var는 2입니다.
}
else
{
    MsgBox, var는 1도 2도 아닙니다?
}

28강 2.ahk
0.00MB

 


 이모저모 

눈치 채신 분들도 계시겠지만, else if문을 이용한 위 예제는 아래 구문이 줄어들은 것 뿐입니다. 관용 표현처럼, 이미 굳어져서 모두들 else if로 쓰는 것 뿐입니다.

var := 1
if (var = 1)
{
    MsgBox, var는 1입니다.
}
else
{
    if (var = 2)
    {
        MsgBox, var는 2입니다.
    }
    else
    {
        MsgBox, var는 1도 2도 아닙니다?
    }
}

빨갛게 표시한 부분이 줄어들어서 else if가 되며, else에 걸린 중괄호(보라색)는 생략되었습니다.

 


 시간을 표시하는 내장 변수 

A_Hour, A_Min, A_Sec이라는 내장 변수 세 가지를 소개합니다.

이들은 컴퓨터의 시간을 담고 있으며, A_Hour에는 시, A_Min에는 분, A_Sec에는 초가 담겨있습니다.

 

아래 예제를 통해 어떻게 실행되는지만 보고, 강좌 마치겠습니다.

MsgBox, % "현재 시간: " A_Hour "시 " A_Min "분 " A_Sec "초"

28강 3.ahk
0.00MB

 


| 28. 조건문 (하) |