고급강의실
2013.09.16 06:30

RGSS 스크립트 강좌 입문 5 - 조건분기

조회 수 2131 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
한번씩 게임제작 하셨던 분들이라면 익숙한 이름일텐데요. 이해하는데도 쉬울겁니다.

1. 비교연산자

지난번에는 대입연산자와 비교대입연산자를 배웠는데, 이번엔 비교연산자입니다. 말 그대로 좌변과 우변을 비교해주는거라 할수있지요.
비교연산자는 다음과 같습니다. 

== 같다.
!= 같지않다.
< 좌변이 우변보다 작다.
> ~크다.
<= ~작거나 같다.
>= ~크거나 같다.

지난번에도 언급했지만 =는 대입연산자고 equal의 의미를 같는건 == 입니다. 
(참고로 비교연산자는 캐릭터라인도 처리할수있습니다. 뭐. ==랑 != 뿐이겠지만)

3. 진위값

진위값은 아주중요합니다. 비교연산자의 답이기 때문입니다.  
(게다가 원래는 유사변수라고 불리면서 모든것을 평정하는 삼위일체이기도 합니다. 유사변수는 다음에 알아보도록 하지요.)
다음과 같습니다.

true  
false  

설명할것도 없이 true 는 진을 뜻합니다. false 는 거짓을 뜻하고요. 단순한만큼 중요합니다.

4. 논리연산자

다음 연산자를 논리연산자라고 한다.

and
&&

or
||

not
!

중학교 다닌분들은 뭐 모를것도 없습니다. 

|은 원기호위에 있습니다. 시프트와 같이 눌러주면 됩니다.

and 는 그리고
or 은 또는
not은 true 와 false 을 반대로 돌려주는 연산자입니다.  

좀더 디테일한 예를 들면 이정도입니다.

p (100 > 1 and 1 + 1 == 2)         
p (100 > 1 && 1 + 1 == 2)         

둘다 true 입니다. 
일단 and와 &&은 같은 연산자입니다. 
비교연산자는 식과 식 가운데에서 작용을 합니다. 
and 연산자는 두식이 모두 성립해야만 true 가 출력되고,
 하나라도 성립되지 않으면 false이 출력되겠지요.
위의 내용같은경우에는 and를 기준으로 식이 모두 성립했기 때문에 true가 출력됩니다.
참고로 and가 들어간 시점에서 이미 괄호가 씌워져있는거나 같은것입니다만, 묶어두면 알아보기 편하기 때문에 씌웠습니다.

p (1 + 1 == 3 or 2 + 2 == 3)        
p (1 + 1 == 3 || 2 + 2 == 3)        

or 연산자는 자신을 기준으로 좌변과 우변의 식중 하나라도 성립하면 true가 됩니다만, 
이경우에는 모두 성립되지 않았기 때문에 false가 됩니다.

p (not 2 + 2 == 2)                 
p (!  true) 

not은 위에 and와 or과는 좀 다르게 자신 뒤에 있는 식의  true 와 false 을 반대로 돌려주는 연산자입니다. 따라서 첫번째항은 true 가 되고 둘째항은 false 가 됩니다. 
not과 !은 또 다른데 not은 식을 돌려줄수있는데 반해 !은 진과 거짓만 돌려줍니다.




뭐든지 그렇지만 비교연산자에서 주의해줄것은 꼭 좌변에서 우변으로 진행해야된다는것이 있겠군요.

5. 조건분기


if ~ end 는 조건분기 구문입니다. 영어의 if와 같이 " 만약 ~ " 으로 시작해서 유용한 시스템을 만들어줍니다.
조건분기에서 사용하는 예약어에는 몇가지가 있습니다.

if 
unless
else   
elsif
case

일단 if는 조건이 채워질경우 처리를 만들때 씁니다.
unless는 조건이 채워지지 않았을경우 처리를 만들때 씁니다. if와 반대입니다.

else는 조건이 채워지지 않는 경우에  써줍니다.
조건이 채워지지않는 경우에 다른 분기을 세우고 싶을때는 elsif를 써줍니다.
case는 일정 조건이었을때 분기시키고 싶은경우 씁니다.

예를 하나씩 들어보겠습니다.
다음은 if의 예제입니다.


a = 20               # 메서드 a 에 20 을 대입한다.

if a >= 10          # 만약 a 가 10 이상이면,
  print "big"       #   big 을 표시한다.
end                     # 분기 종료.


다음은 unless의 예제입니다.

a = 7                       # 메서드 a 에 7 을 대입한다.

unless a >= 10       # 만약 a 가 10 이상이 아니라면,
  print "small"        #   small 을 표시한다.
end                         # 분기 종료.



다음은 else와 elsif의 예제입니다.


a = 7               # 메서드 a 에 7 을 대입한다.

if a >= 10               # 만약 a 가 10 이상이면,
  print "big"            #   big 을 표시한다.
elsif a >= 5             #  a 가 5 이상이면,
  print "medium"    #   medium 을 표시한다.
else                         # 그 외라면
  print "sm   all"     #   small 을 표시한다.
end                         # 분기 종료.

다음은 case의 예제 입니다.

a = 0               # 메서드 a 에 0 을 대입한다.

case a                # 분기 개시.
when 0              #  a 가 0 일때,
  print "영 "      #   영을 표시한다.
when 1              #  a 가 1 일때,
  print "일 "      #   일을 표시한다.
when 2              #  a 가 2 일때,
  print "이 "      #  이를  표시한다.
end                    # 분기 종료.


조건분기 조금 만지신분들은 이해하기 편할겁니다.

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7373 1
32 고급강의실 RGSS 스크립트 강좌 입문 13 - 클래스(Class) 5 마니아 2013.09.16 2317 2
31 고급강의실 RGSS 스크립트 강좌 입문 12 - 연상 배열(Associative Array) 4 마니아 2013.09.16 1600 1
30 고급강의실 RGSS 스크립트 강좌 입문 11 - 배열(Array) 6 마니아 2013.09.16 1701 1
29 고급강의실 RGSS 스크립트 강좌 입문 10 - 그래픽 표시 4 마니아 2013.09.16 2183 0
28 고급강의실 RGSS 스크립트 강좌 입문 9 - 오브젝트(Object) 4 마니아 2013.09.16 1642 0
27 고급강의실 RGSS 스크립트 강좌 입문 7 ~ 8 - 함수(Function) 3 마니아 2013.09.16 1924 0
26 고급강의실 RGSS 스크립트 강좌 입문 6 - 루프(Loop) 2 마니아 2013.09.16 1586 0
» 고급강의실 RGSS 스크립트 강좌 입문 5 - 조건분기 4 마니아 2013.09.16 2131 0
24 고급강의실 RGSS 스크립트 강좌 입문 4 - 캐릭터 라인 4 마니아 2013.09.16 2274 1
23 고급강의실 RGSS 스크립트 강좌 입문 3 - 메서드(Method) 4 마니아 2013.09.16 1876 0
22 고급강의실 RGSS 스크립트 강좌 입문 2 - 수 3 마니아 2013.09.16 2256 0
21 고급강의실 RGSS 스크립트 강좌 입문 1 - 기초 개념 8 마니아 2013.09.16 4351 0
20 고급강의실 뮤's 실전 스크립팅 강좌 [5. 실전! 반복문을 응용하자!] 2 마니아 2013.09.16 1411 0
19 고급강의실 뮤's 실전 스크립팅 강좌 [4. 실전! 플래싱 메시지를 만들어보자] 3 마니아 2013.09.16 2081 0
18 고급강의실 뮤's 실전 스크립팅 강좌 [3. 기초 문법 다지기 (하)] 6 마니아 2013.09.16 1145 0
17 고급강의실 뮤's 실전 스크립팅 강좌 [2. 기초 문법 다지기 (중)] 3 마니아 2013.09.16 1371 0
16 고급강의실 뮤's 실전 스크립팅 강좌 [1. 기초 문법 다지기 (상)] 6 마니아 2013.09.16 2351 0
15 고급강의실 RGSS2 강좌 1 비형랑 2012.10.01 2528 0
14 중급강의실 [RPGVX ACE] 소재규격과 강의수록 1 2 비형랑 2012.10.01 3273 0
13 초급강의실 [RPG VX ACE] 초심자강의 1 1 비형랑 2012.10.01 3168 2
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 Next
/ 10






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)