프날 오토핫키 강좌
누르면 강좌 리스트가 나와요
프날 오토핫키 강좌

⚠ 이 강좌는 오토핫키 v1을 다룹니다

지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.

[프날 오토핫키] 28. 조건문 (하)

지난 강좌에서 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. 조건문 (하) |