반응형

지난 시간에 If문을 배웠습니다.

신호등이 초록불이면 → 건넌다.

그런데 뭔가 이상하지 않나요?
초록불이 아니면 어떻게 되는 걸까요?

지난 시간에 배운 If문은 조건이 틀리면 그냥 아무 일도 일어나지 않습니다.
건너지도 않고, 멈추지도 않고, 그냥 가만히 있는 거죠.
현실이라면 큰일 납니다. 빨간불이면 멈춰야 하니까요.

오늘은 그 "아니면"을 배웁니다.

Else : "아니면 이걸 해라"

Else는 영어로 "그 밖에, 아니면"이라는 뜻입니다.
If문 뒤에 붙어서, 조건이 틀렸을 때 실행할 내용을 정해줍니다.

신호등이 초록불이면 → 건넌다
아니면(else) → 멈춘다
신호등 := "빨간불"

if (신호등 = "초록불")
    MsgBox, 건넙니다!
else
    MsgBox, 멈춥니다!

실행하면 "멈춥니다!"가 나옵니다.
신호등이라는 변수 안에 빨간불이 들어있어서 조건이 틀렸고,
조건이 틀렸으니 else 쪽이 실행된 겁니다.

여기서 중요한 포인트 하나.

else에는 조건을 쓰지 않습니다. 괄호도 없습니다. 그냥 else 한 단어만 씁니다.

"조건이 맞으면 위쪽, 틀리면 아래쪽" — 둘 중 하나는 반드시 실행됩니다.
둘 다 실행되는 경우는 절대 없습니다. 갈림길에서 양쪽 길을 동시에 걸을 수 없는 것과 같습니다.

중괄호 { } : 초보자가 가장 많이 틀리는 곳

지금까지의 예제는 조건이 맞으면 딱 한 줄만 실행했습니다.
그런데 두 줄 이상 실행하고 싶다면 어떻게 될까요? 아래 코드를 보세요.

신호등 := "빨간불"

if (신호등 = "초록불")
    MsgBox, 건넙니다!
    MsgBox, 콧노래를 부릅니다!

빨간불이니까 아무것도 안 나와야 정상이겠죠?
그런데 실행해보면 "콧노래를 부릅니다!"가 나옵니다.

왜냐하면,

중괄호가 없으면, If문은 바로 아래 딱 한 줄만 책임집니다.

둘째 줄부터는 If문과 아무 상관이 없는, 그냥 평범한 줄입니다.
내가 아무리 줄을 예쁘게 맞춰서 들여쓰기를 해도 컴퓨터는 신경 쓰지 않습니다.
두 줄 이상을 묶고 싶다면 중괄호 { } 로 감싸야 합니다.

신호등 := "초록불"

if (신호등 = "초록불")
{
    MsgBox, 건넙니다!
    MsgBox, 콧노래를 부릅니다!
}
else
{
    MsgBox, 멈춥니다!
    MsgBox, 초록불을 기다립니다!
}

중괄호로 묶인 부분을 블록이라고 부릅니다.
"조건이 맞으면 이 블록을 통째로 실행해라"가 되는 거죠.

헷갈리면 이렇게 하세요.

한 줄이든 두 줄이든, 그냥 항상 중괄호를 쓰세요.

한 줄일 때 중괄호를 써도 아무 문제 없습니다.
오히려 나중에 줄을 추가할 때 실수할 일이 없어집니다.

Else If : 조건이 3개 이상일 때

If와 Else만으로는 갈림길이 딱 2개뿐입니다.
그런데 세상일이 그렇게 단순하지 않죠. 시험 성적을 생각해보세요.

90점 이상이면 → A
80점 이상이면 → B
둘 다 아니면 → 분발

이럴 때 If와 Else 사이에 else if를 끼워 넣습니다.

점수 := 85

if (점수 >= 90)
{
    MsgBox, A입니다!
}
else if (점수 >= 80)
{
    MsgBox, B입니다!
}
else
{
    MsgBox, 더 분발하세요!
}

점수85이므로 결과는 "B입니다!" 가 나옵니다.

컴퓨터는 위에서부터 순서대로 조건을 검사합니다.

  • 90점 이상인가? → 아니오. 다음으로.
  • 80점 이상인가? → 네! → "B입니다!" 실행하고 끝.

여기서 중요한 건 하나가 맞으면 나머지는 쳐다보지도 않는다는 점입니다.
85점은 "80점 이상"에서 걸렸으니, 그 아래 else까지 내려가지 않습니다.
여러 갈림길 중에서 단 하나만 실행됩니다.

총정리

키워드 조건 괄호
if 이 조건이 맞으면 실행 필요 ⭕
else if 위 조건은 틀렸고, 이 조건이 맞으면 실행 필요 ⭕
else 위 조건이 전부 틀렸을 때 실행 없음 ❌
{ } 여러 줄을 하나로 묶는 블록 항상 쓰는 습관 추천

오늘의 실습 : 나이 판별기 만들기

오늘 배운 걸 전부 사용해서, 내가 입력한 나이를 판별하는 프로그램을 만들어봅니다.
새로 등장하는 InputBox는 "입력창을 띄워서, 입력받은 값을 변수에 담는" 명령어입니다.
아래 코드를 복사해서 그대로 실행해보세요.

InputBox, 나이, 나이 판별기, 나이를 숫자로 입력하세요.

if (나이 >= 19)
{
    MsgBox, 성인입니다!
}
else if (나이 >= 8)
{
    MsgBox, 학생이시군요!
}
else
{
    MsgBox, 어린이네요!
}

입력창에 25, 15, 5를 각각 넣어보면서 결과가 달라지는 걸 확인해보세요.
숫자 하나에 따라 프로그램이 다른 길로 가는 것, 이게 바로 조건문의 힘입니다.

다음 시간에는 조건문과 단짝인 반복문(Loop)을 배워보겠습니다.
"조건이 맞는 동안 계속 반복해라" — 매크로의 심장이 드디어 등장합니다.

반응형
반응형

우리는 사실 하루에도 수백 번씩 조건문을 실행하며 살고 있습니다.

배고프 밥을 먹고,
졸리 자고,
월급날이 행복해집니다.

"~라면, ~한다"

이게 전부입니다. 프로그래밍의 조건문도 이것과 똑같습니다.
지난 시간에 배운 변수와 연산자를 기억하시나요?
오늘은 드디어 그 연산자를 실제로 써먹는 곳, If문을 배워봅니다.

If문

조건이 맞으면 실행하고, 틀리면 실행하지 않는 문입니다.
신호등을 떠올려보세요.

신호등이 초록불이면 → 건넌다
신호등이 빨간불이면 → 멈춘다

컴퓨터는 스스로 판단하지 못합니다.
그래서 우리가 "이 조건이 맞으면 이걸 해라"라고 알려줘야 하는데,
그 역할을 하는 것이 If문입니다.

그런데 여기서 초보자분들이 반드시 겪는 문제가 하나 있습니다.
인터넷에서 오토핫키 예제를 찾아보면, 분명히 같은 If문인데 생긴 게 전부 다릅니다.

IfEqual, 대한민국, 사자

if 대한민국 = 사자

if (대한민국 = "사자")

셋 다 If문이고, 셋 다 작동합니다.
"아니 뭐가 이렇게 많아? 어떤 걸 써야 하는데?"

오늘 이 글 하나로 정리해드리겠습니다.
결론부터 말씀드리면 여러분은 3번만 쓰시면 됩니다.
하지만 1번, 2번도 반드시 알아야 합니다. 남이 짠 코드를 읽을 때 나오거든요.

작성법 1 : IfEqual (옛날 방식)

대한민국 := "사자"

IfEqual, 대한민국, 사자
    MsgBox, 대한민국에 사자가 있습니다!

IfEqual은 말 그대로 "만약 같다면" 이라는 명령어입니다.
"대한민국이라는 변수 안에, 사자라는 데이터가 들어있다면" 아랫줄을 실행합니다.

이 방식은 오토핫키 아주 초창기의 방식입니다.
지금은 거의 쓰지 않지만, 오래된 강좌나 오래된 매크로 소스에 자주 등장하기 때문에
"아, 이거 If문이구나"라고 읽을 줄만 알면 됩니다.

IfEqual 말고도 형제들이 있습니다.
IfNotEqual(같지 않다면), IfGreater(크다면), IfLess(작다면)...
전부 외울 필요 없습니다. 어차피 안 쓸 거니까요.

작성법 2 : If 변수 = 값 (괄호 없는 방식)

대한민국 := "사자"

if 대한민국 = 사자
    MsgBox, 대한민국에 사자가 있습니다!

IfEqual보다 조금 더 발전한 형태입니다. 우리가 아는 "if"라는 단어가 드디어 등장했죠.
그런데 여기서 초보자분들이 가장 많이 실수하는 부분이 나옵니다. 잘 보세요.

괄호가 없는 If문에서는, 변수에 % 를 붙이지 않습니다.

"어? 변수를 쓸 땐 %변수% 라면서요?"

맞습니다. 그런데 괄호 없는 If문에서 왼쪽에 오는 변수는 % 없이 씁니다.
대신, 비교하는 값 쪽에 변수를 넣고 싶을 때는 % 를 붙입니다.

대한민국 := "사자"
일본 := "사자"

if 대한민국 = %일본%
    MsgBox, 대한민국과 일본에 같은 동물이 있습니다!

왼쪽 변수는 % 없이, 오른쪽 변수는 % 를 붙여서... 헷갈리시죠?

바로 이 헷갈림 때문에, 이 방식도 추천하지 않습니다.
인터넷 예제를 복사했는데 내 코드에서만 안 된다면,
십중팔구 이 % 규칙이 섞여서 그렇습니다.

작성법 3 : If (표현식) ★ 이것만 쓰세요

대한민국 := "사자"

if (대한민국 = "사자")
    MsgBox, 대한민국에 사자가 있습니다!

괄호 ( ) 가 등장했습니다. 그리고 규칙이 아주 깔끔해집니다.

괄호 안에서는 % 를 아예 쓰지 않습니다.
변수는 그냥 이름만, 글자(문자열)는 따옴표 " " 로 감쌉니다.
  • 대한민국 → 변수니까 그대로
  • "사자" → 글자 데이터니까 따옴표

변수끼리 비교할 때도 규칙이 그대로입니다.

대한민국 := "사자"
일본 := "사자"

if (대한민국 = 일본)
    MsgBox, 대한민국과 일본에 같은 동물이 있습니다!

% 가 어디에도 없습니다. 외울 게 없죠.
그리고 지난 시간에 배운 연산자들( >, <, >=, <= )도 괄호 안에서 전부 사용할 수 있습니다.

나이 := 20

if (나이 >= 19)
    MsgBox, 성인입니다!

3가지 방식 총정리

  작성법 % 규칙 추천
1 IfEqual, 변수, 값 값에 %변수% 가능 ❌ 읽을 줄만 알면 됨
2 if 변수 = 값 왼쪽은 % 없이, 오른쪽은 %변수% ❌ 헷갈림의 주범
3 if (변수 = "값") % 사용 안 함, 글자는 " " 이것만 쓰세요

딱 하나만 기억하세요.

"괄호가 보이면 % 금지, 글자는 따옴표"

오늘의 실습

아래 코드를 복사해서 그대로 실행해보세요.

대한민국 := "사자"

if (대한민국 = "사자")
    MsgBox, 대한민국에 사자가 있습니다!

if (대한민국 = "호랑이")
    MsgBox, 이 메시지는 절대 나오지 않습니다.

 

반응형
반응형

네이버 블로그 최적화 자동 글쓰기 프로그램입니다. 

해당 프로그램은 글의 형태와 최적화된 글 타입만 지키고 글을 작성하는 것입니다.

 

크몽 프로젝트

< N사 자동 글쓰기 > 

 

   

 

키워드를 입력하면, 

키워드의 "스마트블록"의 주제부 단어, 연관검색어, 상위 블로그의 개 제목 및 원고 에서 내용과 제목이 결정됩니다.

 

제목은 키워드 + 상위 3개블로그의

제목을 단어별로 랜덤 조합하여 ( 2글자이상) 제목을 만들고, 

 

원고의 내용을 문장별로 썪어서 원고를 만들어서 적용시킵니다.

 

인용구

사진

원고

 

인용구

사진

원고 

 

 

 

형태로 작업됩니다.  

 

관련 프로그램 문의

https://open.kakao.com/o/sFmocaHg

 

언어공작소2

#더망고 프로그램#더망고자동화프로그램 . -> 자동화 프로그램의 모든

open.kakao.com

 

 

 

 

  

반응형
반응형

 

 

 

 

 

링크형식의 큐텐제펜의 데이터를 크롤링합니다

키워드형식보다, 카테고리형식까지 포함시키기위해 링크별로 작업되었습니다.

 

링크만 넣어주신다면,

해당 상품의 가격,총판매량, 리뷰수, 일자별 리뷰수를 취합할 수있습니다

( 리뷰 날짜는 중복 선택 가능합니다 )

 

 

https://open.kakao.com/o/sFmocaHg

 

언어공작소2

#더망고 프로그램#더망고자동화프로그램 . -> 자동화 프로그램의 모든

open.kakao.com

 

반응형

+ Recent posts