• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

팁사용기

[팁] 리얼베이직 문법 조건문

본문

문법 조건문

안녕하세요? 미쉐린 김성준입니다.
이번에는 리얼베이직의 조건문에 대해서 알아보도록 하겠습니다.
조건문이란 말 그대로 조건에 대해서 따져서 결정을 하는 것입니다.
프로그램을 사용하다보면 무수히 많은 수백수천가지의 조건을 우리는 선택하게 됩니다.
예를 들어서 OK 버튼을 누른다던지, 무엇을 저장할때 포맷을 지정한다던지, 인터넷에서 특정 북마크를 선택해서 웹서핑을 한다던지 하는 모든 동작들이 각각의 조건에 따라서 움직이는 것이죠.
이러한 조건에 대한 것을 프로그램 내에서 지정할 수 있는데요. 이것을 나타내는 것이 바로 조건문입니다.
그럼 조건문에 대해서 알아보도록 하겠습니다.

1. 조건문의 종류
조건문에는 몇가지가 있는데 대표적으로 다음과 같습니다.
뭐 대표적이라기보다는 거의 이것들만 쓰입니다.

1) if 문
if ~ end if 로 구성이 되며 가장 대표적인 조건문임.

2) Select 문
Select case 와 end select 문으로 구성이 되며 동일한 조건에 여러가지 값에 대한 조건문을 작성할 때 편리

3) While 문
While ~ wend 로 구성이 되며 조건과 반복문의 기능을 갖는 조건반복문임.
4) Do ~ Loop 문
While 문과 마찬가지로 반복과 조건문이 동일하게 적용됨. 차이점이라면 While 문은 조건이 앞에 적용되고 DO 문은 뒤에 적용됨

2. if 문 사용해보기...
if 문은 then, end if 문장과 항상 짝을 이룹니다. 따라서 써주는 형식을 항상 외워주는 것이 좋습니다.
형식은 다음과 같습니다.

if 조건문 then
실행될 문장
end if

if 와 Then 문장 사이에는 조건문이 들어가게 됩니다. 이 조건이 맞다면 다음에 있는 end if 전에 있는 문장(코드)를 실행하라는 것이 기본 구조입니다. 그럼 다음을 한번 보시죠.

if 조건문 then
실행될 문장1
else
실행될 문장2
end if

자 위의 문장을 보면 내용은 다음과 같습니다.
조건문이 충족하면 실행될 문장1을 실행하고 그렇지 않으면 실행될 문장2를 실행하라는 것입니다.
또한가지 형식이 있습니다.

if 조건문1 then
실행될 문장1
elseif 조건문2 then
실행될 문장2
else
실행될 문장3
end if

이제 위의 해석은 대충 아시겠죠? 조건문이 하나가 더 들어간 경우인데요. 조건문1 이 맞으면 실행될 문장1을 실행하라는 것이고 조건문2가 맞으면 실행될 문장2를 실행하라는 것이며 둘다 틀리면 실행될 문장 3을 실행하라는 것입니다.
조건문은 위와같이 무수하게 많이 조건을 적용시켜서 해당 사항에 맞게 조건에 맞는 동작을 수행할 수 있도록 해줍니다. 그럼 실질적인 코드의 예를 보도록 하죠.

dim a, b as integer

a = 10
b = 20

if a+b = 30 then
msgbox "30입니다."
end if

위의 문장을 보도록 하죠. 정수형 변수 a, b 가 있는데 여기에 각각 10과 20이라는 값을 넣었습니다.
그리고 아래의 조건문에는 a+b 가 30이면 "30입니다." 라는 메세지를 화면에 표시를 해주는 것이구요.
조금 변형해서 다시 작성해보돌고 하죠.

dim a, b as integer

a = 10
b = 20

if a+b = 30 then
msgbox "30입니다."
else
beep
end if

위의 코드는 앞서 했던 코드에서 else 부분만 추가한 것입니다. 만약에 a+b 가 30이 아니면 beep 음을 내라는 코드입니다.
대충 이해가 가시죠? 마지막 하나더 해보도록 하죠.

dim a, b as integer

a = 10
b = 20

if a+b < 30 then
msgbox "30보다 작습니다."
elseif a+b > 30 then
msgbox "30보다 큽니다."
elseif a+b = 30 then
msgbox "30입니다."
else
msgbox "모르겠습니다."
end if

위의 코드는 3가지 조건에 따라 각각 수행코드가 다르게 하도록 한 것입니다. 하지만 3가지 조건에 맞지 않는다면 "모르겠습니다."라는 메세지를 나타나게 하는 것이죠. 대충 이해가시죠?

3. and, or 그리고 부등호
if 조건문에는 and, or 비교가 가능합니다. 이것이 무슨 말이냐.... 어릴때 많이 배워왔었던 집합 아시죠?
그것과 같습니다. and 는 모든 조건이 만족할 때, or 는 여러 조건 중 하나만 맞을 때 이런것을 말하죠.
그럼 다음의 예를 보도록 하겠습니다.

if a = 30 and b = 10 and c = 20 then
msgbox "모든 조건이 맞았습니다."
end if

위의 코드는 a도 30이고 b 도 10이고 c도 20이어야만 if 문 사이에 있는 코드를 실행하도록 해줍니다. 사이사이에 and 가 들어갔기 때문에 3가지 조건이 모두 딱 맞아 떨어져야 한다는 것이죠.
그럼 다음의 코드를 보도록 하겠습니다.

if a = 30 or b = 10 or c = 20 then
msgbox "모든 조건이 맞았습니다."
end if

위에 코드에서는 and 대신에 or 가 들어갔는데요. 즉 a가 30이거나 b 가 10이거나 c 가 20이면 다음의 코드를 실행하라는 것입니다. 즉 3개의 조건중에 하나만 만족한다면 if 조건문의 코드를 수행하라는 것이되죠.
위와 같이 한후에 elseif 나 else 등으로 다른 조건으로 넣어도 됩니다.


4. Select 문
복잡하고 다양한 조건을 꼼꼼히 따진다면 if 문만한것이 없죠. 거의 대부분의 조건문은 if 문으로 만들어지니까요. 하지만 하나의 조건에 따라서 값만 변하는 등의 단순한 조건이라면 if 보다는 Select 문이 편리할 수 있습니다.
Select 문의 구성은 다음과 같습니다.

Select Case 값이 변하는 조건변수
case 조건값1
실행문장1
case 조건값2
실행문장2
else

end select

Select 문은 항상 첫문장에 오게 되면 다음에는 숙어처럼 Case 라는 문장이 같이 따라다닙니다. 따라서 Select case 문이라고 외워두시면 됩니다. 그리고 그 다음에 변수가 오게 되는데요.
이 변수의 값이 몇가지로 변하느냐에 따라 다음의 Case 값 문장이 오게 됩니다.
예를 들어서 조건 정수형 변수 a 라는 것이 있다고 했을 때 이 a 라는 변수가 상황에 따라 1, 2, 3, 4, 5 라는 값을 갖게 된다고 하면요. 다음과 같이 표현할 수 있습니다.

Select case a
case 1
실행문1
case 2
실행문2
case 3
실행문3
case 4
실행문4
case 5
실행문5
end select

a 의 값이 1이면 실행문1을 2이면 실행문 2를 실행시키는 식으로 원하는 만큼의 조건을 넣을 수 있습니다.
if 문으로 해도 되지만 Select 문은 뭐라고 할가요..좀더 단순하고 양이 많은 조건 비교에서는 Select 문이 보기가 좋습니다. 보기좋다라는 것을 보통 가독성이라고 말하는데요. 가독성이 높으면 좋은거죠. 그런데 프로그램을 만들때 이 가독성은 굉장히 중요한데요. 왜냐하면 나중에 수천수만줄의 복잡한 코드를 작성하게 될 때 버그를 수정하거나 기능을 추가하거나 변경할 경우 가독성이 좋아야 좀 더 쉽게 볼 수 있고 고치기도 쉽기 때문이죠. 뿐만 아니라 여러명이 작업을 할경우 이러한 규칙이나 가독성은 굉장히 중요한 역할을 합니다.
Select 문으로 20여개 이상의 조건문을 만든다는 경우 이것을 if 문으로 하려고 하면 정말이지 보기가 어려울 정도가 될 때가 많습니다. 여튼 그러합니다..^^;; 되도록 보기좋게 코드를 작성하는 노력을 처음부터 습관적으로 만드시는 나중에 굉장히 편해집니다.


5. While 문
리얼베이직에는 앞서 했었던 조건문 뿐 아니라 지정된 횟수만큼 반복적으로 코드를 수행해주는 반복문이 있습니다. 대표적으로 For ~ next 문이 있죠. 뭐 다른 언어에도 반복문은 다 있습니다. 없는 경우는 없죠..^^;; 여튼 while 문은 주로 반복문에 가까운데요. 조건을 줄 수 있다는 점이 특이합니다. 어떻게 보면 for 문과 if 문을 하나로 합쳐서 놓은것이라고 봐야겠죠.
여튼 While 문의 형식은 다음과 같습니다.

Whiled 조건문
반복수행문장
wend

While 문의 형식은 다음과 같으며 조건이 맞으면 반복을 종료하고 조건이 맞지 않으면 반복수행문장을 계속해서 실행하게 되어있습니다.
따라서 특정한 횟수를 지정하는 For 문과는 다르게 조건이 않으면 무조건 수행하는 무작위성을 갖고 있죠. 하나의 예를 볼까요?

While TrueValue = True
i = i+1
wend

위의 코드를 보면 TrueValue 라는 Boolean 형의 값이 True(참) 값을 갖게 될때까지 i 의 값을 1씩 계속해서 증가하나는 것입니다.
그럼 위에서 본 if 문과 조합을 해서 조금 더 바꾸어 보겠습니다.

While TrueValue = True
i = i+1

if i = 10 then
TrueValue = True
end if
wend

자.이제 위의 코드를 볼까요? 내용은 같습니다만 중간에 if 문이 하나 들어갔습니다.
즉 i 값을 계속해서 1씩 증가하다가 i 값이 10이 되면 TrueValue 의 값을 True 로 바꾸어주라는 것입니다.
그렇게 되면 위의 루는 종료가 되게 됩니다.
어떤식인지 알겠죠?
Do ~ Loop 문은 While 문과 동일합니다. 하지만 조건이 뒤에오죠.

do
i = i+1
Loop TrueValue = True

위와 같은 식입니다.


마치며....
조건문은 리얼베이직 뿐 아니라 다른 언어에서도 가장 많이 사용하는 기본 문법입니다.
쉽고 간단하기 때문에 금방 외우고 익히실수 있을 것입니다.
나중에는 좀 더 복잡한 조건문을 어떻게 간단하게 코딩하는지에대해서도 간단하게 예를 들어서 정리를 해보도록 하겠습니다.
그럼 좋은 하루 되세요..^^;;
그럼.이만.휘릭~!

from michelin
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 5,044
가입일 :
2004-01-25 23:38:19
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 0

등록된 댓글이 없습니다.
전체 48 건 - 1 페이지