고급강의실
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 7384 1
112 중급강의실 RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?- 3 file RPG란무엇인가? 2016.10.31 2172 0
» 고급강의실 RGSS 스크립트 강좌 입문 5 - 조건분기 4 마니아 2013.09.16 2131 0
110 고급강의실 죽노의 RGSS 이것저것(1) 6 죽은노예 2013.10.23 2129 1
109 고급강의실 [투달이의 아무짝에도 쓸모없는 강좌] Scene_title을 조작해 사람들을 농락해보자! 6 투달 2013.09.30 2123 0
108 중급강의실 대각선으로 이동하자! 7 바석(baseock) 2014.01.01 2120 0
107 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 5화 스위치 작긔 2015.12.22 2120 1
106 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 14화 버튼 퍼즐 5 file 작긔 2015.12.23 2109 0
105 고급강의실 나뚜루's - 배열, 이렇게도 만들 수 있다. 2 마니아 2013.09.17 2101 0
104 고급강의실 나뚜루's - Sprite 클래스 파헤치기 [1] 3 마니아 2013.09.17 2086 0
103 고급강의실 뮤's 실전 스크립팅 강좌 [4. 실전! 플래싱 메시지를 만들어보자] 3 마니아 2013.09.16 2082 0
102 중급강의실 게임제작에 대한 모든것! 게임제작지침서 강좌링크입니다. (1~18강) 2 마둠 2013.09.23 2053 0
101 고급강의실 나뚜루's - Sprite 클래스 파헤치기 [4] 4 마니아 2013.09.17 2040 1
100 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기 1 file 이니군 2018.04.24 2006 1
99 중급강의실 RPGXP의 데미지 계산식 (Part 3. 보정편) 4 마니아 2013.09.17 1992 2
98 중급강의실 RPG Maker XP 암호화 하는법 13  운 2013.09.25 1968 0
97 초급강의실 [동영상] 게임을만들자 (3편) - 필드에 보이는 몹 만들기- 1 file 천무 2016.02.10 1958 1
96 고급강의실 [RPGMV Plugin 영상] 한글이름 입력, 전투속도증가 플러그인!! 4 천무 2015.12.09 1926 0
95 고급강의실 RGSS 스크립트 강좌 입문 7 ~ 8 - 함수(Function) 3 마니아 2013.09.16 1924 0
94 중급강의실 (ver.XP) 타일셋 파헤치기 /스압有 3 사요쿠냥 2013.12.13 1919 0
93 중급강의실 [RPGXP] 자신이 만든 게임 기본적인 암호화를 하자! 4 맵만드는중.. 2014.02.20 1907 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(김원배) | 사신지(김병국)