고급강의실
2013.09.16 06:30

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

조회 수 2182 추천 수 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 7877 1
191 초급강의실 [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에. 케이디 2018.09.10 2761 0
190 초급강의실 RPG Maker MV에서 도트 느낌의 폰트 사용하기 1 file 러닝은빛 2018.07.15 5000 1
189 초급강의실 [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! " file 수성의물 2018.07.01 1895 0
188 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약 file 이니군 2018.04.25 850 0
187 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠 file 이니군 2018.04.25 913 0
186 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기 1 file 이니군 2018.04.24 2223 1
185 초급강의실 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정. file 약빨은ㄱㅏㅅㅣ 2017.11.28 1611 0
184 초급강의실 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용) 약빨은ㄱㅏㅅㅣ 2017.11.28 1443 0
183 초급강의실 [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인) file 이니군 2017.09.11 1325 0
182 초급강의실 RPG MAKER MV Tool Program-MADO 설치 및 적용기 1 file 이니군 2017.09.08 2536 0
181 초급강의실 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정) 3 file 이니군 2017.08.28 1708 0
180 고급강의실 [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법 1 러닝은빛 2017.07.16 3874 2
179 중급강의실 네코플에서 VXA 선택지 잘리는 버그 해결하는법 file 심심치 2017.06.22 1160 2
178 초급강의실 변수를 이용한 식물 재배 3 file MoonJ 2017.05.28 3393 2
177 초급강의실 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기! 4 file 이제리아 2017.01.26 4530 3
176 중급강의실 RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?- 3 file RPG란무엇인가? 2016.10.31 2431 0
175 중급강의실 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편 22 file 양갱님 2016.04.17 36387 10
174 초급강의실 게임의 퀼리티를 높이자! 3편-맵배치 2 ifeve 2016.04.08 5324 2
173 초급강의실 Input 객체의 키코드 확장 8 file 러닝은빛 2016.04.05 1501 0
172 초급강의실 초보가쓰는 초보용 Rpg게임 만들기 (xp) 6 Marine 2016.03.13 6395 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


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

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