고급강의실
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                    # 분기 종료.


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

?

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7382 Votes1
    read more
  2. RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?-

    Date2016.10.31 Category중급강의실 ByRPG란무엇인가? Views2171 Votes0
    Read More
  3. RGSS 스크립트 강좌 입문 5 - 조건분기

    Date2013.09.16 Category고급강의실 By마니아 Views2131 Votes0
    Read More
  4. 죽노의 RGSS 이것저것(1)

    Date2013.10.23 Category고급강의실 By죽은노예 Views2129 Votes1
    Read More
  5. [투달이의 아무짝에도 쓸모없는 강좌] Scene_title을 조작해 사람들을 농락해보자!

    Date2013.09.30 Category고급강의실 By투달 Views2123 Votes0
    Read More
  6. [동영상] RPG Maker MV 튜토리얼 강좌 5화 스위치

    Date2015.12.22 Category초급강의실 By작긔 Views2120 Votes1
    Read More
  7. 대각선으로 이동하자!

    Date2014.01.01 Category중급강의실 By바석(baseock) Views2119 Votes0
    Read More
  8. [동영상] RPG Maker MV 튜토리얼 강좌 14화 버튼 퍼즐

    Date2015.12.23 Category초급강의실 By작긔 Views2109 Votes0
    Read More
  9. 나뚜루's - 배열, 이렇게도 만들 수 있다.

    Date2013.09.17 Category고급강의실 By마니아 Views2101 Votes0
    Read More
  10. 나뚜루's - Sprite 클래스 파헤치기 [1]

    Date2013.09.17 Category고급강의실 By마니아 Views2086 Votes0
    Read More
  11. 뮤's 실전 스크립팅 강좌 [4. 실전! 플래싱 메시지를 만들어보자]

    Date2013.09.16 Category고급강의실 By마니아 Views2082 Votes0
    Read More
  12. 게임제작에 대한 모든것! 게임제작지침서 강좌링크입니다. (1~18강)

    Date2013.09.23 Category중급강의실 By마둠 Views2053 Votes0
    Read More
  13. 나뚜루's - Sprite 클래스 파헤치기 [4]

    Date2013.09.17 Category고급강의실 By마니아 Views2040 Votes1
    Read More
  14. [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기

    Date2018.04.24 Category초급강의실 By이니군 Views2004 Votes1
    Read More
  15. RPGXP의 데미지 계산식 (Part 3. 보정편)

    Date2013.09.17 Category중급강의실 By마니아 Views1992 Votes2
    Read More
  16. RPG Maker XP 암호화 하는법

    Date2013.09.25 Category중급강의실 By 운 Views1968 Votes0
    Read More
  17. [동영상] 게임을만들자 (3편) - 필드에 보이는 몹 만들기-

    Date2016.02.10 Category초급강의실 By천무 Views1958 Votes1
    Read More
  18. RGSS 스크립트 강좌 입문 7 ~ 8 - 함수(Function)

    Date2013.09.16 Category고급강의실 By마니아 Views1924 Votes0
    Read More
  19. [RPGMV Plugin 영상] 한글이름 입력, 전투속도증가 플러그인!!

    Date2015.12.09 Category고급강의실 By천무 Views1924 Votes0
    Read More
  20. (ver.XP) 타일셋 파헤치기 /스압有

    Date2013.12.13 Category중급강의실 By사요쿠냥 Views1919 Votes0
    Read More
  21. [RPGXP] 자신이 만든 게임 기본적인 암호화를 하자!

    Date2014.02.20 Category중급강의실 By맵만드는중.. Views1907 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






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

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