조회 수 1371 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

뮤's 실전 스크립팅 강좌

 

[2. 기초 문법 다지기 (중)]

 

 

11:50 에 강좌 쓰기 시작하네요. 과연 언제쯤 끝날지 궁금하네요!

사실 강좌 끄트머리에 카에데가 쓴 강좌도 링크 걸려고 했는데 다 지웠더라구요 ㅠㅠ..

이번 강에서는 배열과 해시, 그리고 반복문에 대해서 알아보겠습니다.

 

 

#1. 배열

 

배열은 여러 개의 변수를 관리하기 편하게 정렬해 놓은 것입니다,

하지만 꼭 그정도 수준에 그치지는 않죠.

배열은 반복문과는 떨어질 수 없는 관계입니다.

이번 강에서 배열과 반복문을 함께 배우는 이유지요. 

다음 두 스크립트를 비교해 보겠습니다.

 

 

 1. 배열을 사용하지 않을 경우

 

 a = "안"

 b = "녕"

 c = "하"

 d = "세"

 e = "요"

 print a + b + c + d + e

 

-----------------------------------------------------------

 

 2. 배열을 사용할 경우

 

 hi = ["안","녕","하","세","요"]

 print hi[0] + hi[1] + hi[2] + hi[3] + hi[4]

 

 

확실히 배열을 사용하는 경우가 더 편해보입니다.

배열은 첫번째 요소부터 0, 1, 2, 3 ... 이런순으로 뽑아서 사용이 가능합니다.

첫번째 요소가 1이 아니라는 점에 유의해주세요!

또한 배열의 크기는 size로 구할 수 있습니다.

아래를 봐주세요.

 

 

 hi = ["안","녕","하","세","요"]

 print hi.size

 

 

출력하시면 5가 나올 겁니다.

5개의 요소가 들어있다는 소리죠.

또한 배열 선언 후 추가로 요소를 삽입하시려면 push를,

이미 있는 요소를 제거하시려면 delete를 쓰시면 됩니다.

push 를 통해서 집어넣은 요소는 자동적으로 맨 끝에 위치하게 됩니다.

 

 

 hi = ["안","녕","하"]

 hi.push("세")

 hi.delete("안")

 hi[3] = "요"

 

 print hi[0] + hi[1] + hi[2] + hi[3]

 

 

위에서는 설명하지 않았지만, 배열이름[인덱스] = 값

이런식으로 요소를 삽입할수도 있습니다. 예제에는 나와있죠? 

또한 이 방법을 써서 기존의 값을 다른 값으로 대체할 수도 있죠.

마지막으로 배열이 특정한 요소를 포함하고 있는지 알아보려면

include? 를 사용하시면 됩니다.

 

 

 hi = ["안","녕","하","세","요"]

 if hi.include?("안")

    print "안은 개풀"

 end

 

 

 

#2. 해시

 

해시는 배열과 비슷합니다.

배열을 이해하신다면 해시도 충분히 이해하실거라 생각됩니다.

해시와 배열의 차이점은 간단합니다.

배열에서 인덱스가 정수라면, 해시에서는 문자열입니다.

우리는 몸으로 배우는 싸람들이니까! 예제를 보도록 하겠습니다.

 

 

 hi = {"인사"=>"안녕하세요", "에마군"=>"바보"}

 print hi["에마군"] + hi["인사"]

 

 

순차적으로 증가하는 변수가 아닌 문자열로 인덱스를 나타내기 때문에

선언 방식이 배열에 비해 약간 더 복잡합니다.

쓸 일이 많지는 않지만, 꼭 알아두고 가셔야 해요!

 

선언 방식이 다른 만큼, 값을 넣는 방식도 다릅니다.

배열에서 요소를 삽입하는 방법 두가지 아시죠?

해시는 그 중 두번째 방법으로만 값을 넣을 수 있습니다.

해시이름["인덱스"] = 값 이렇게요.

이밖에 해시에서 값을 제거하는 방법이나

값을 가지고 있는지 판정하는 방법은 배열과 같습니다.

똑같이 delete, include? 를 이용하지요.

 

 

 hi = {"인사"=>"안녕하세요"}

 hi["에마군"] = "바보"

 hi["테스트"] = "ㅋ"

 if hi.include?("ㅋ")

   hi.delete("ㅋ")

 end

 print hi["에마군"] + hi["인사"]

 

 

해시는 배열과 비슷해서 설명이 많이 짧네요.

바로 반복문으로 넘어가도록 하겠습니다.

 

 

#3. 반복문

 

사실 반복문이란건 스크립트나 프로그래밍을

처음 접하는 분들이 이해하기 좀 까다롭습니다.

도대체 왜 쓰는지도 모르겠고, 다중 for 문은 헷갈리기만 합니다.

우선 반복문의 종류에 대해 알아볼까요?

 

1. for 문 - 범위를 설정해서 반복

2. while 문 - 조건이 참일 경우 반복

3. loop 문 - 그냥 반복

 

자, 일단 가장 많이 쓰이는 for 문부터 알아보도록 하겠습니다.

일단 for 문의 기본 형태는 아래 예제와 같습니다.

 

 

 for i in 1..5 # 1부터 5까지 반복

   print i #반복하면서 하나씩 출력

 end

 

 value = 0

 for j in 1...5 # 1부터 4까지 반복

   value += j #반복하면서 value에 값을 더함

 end

 print value # 1 ~ 4까지의 합 출력

 

 

즉 for 변수이름 in 범위 가 되겠네요.

범위는 1..5와 1...5 두가지가 있는데,

1..5는 1 ~ 5까지, 1...5는 1 ~ 4까지 각각 반복합니다.

for 문과 배열을 같이 사용해 보겠습니다.

 

 

 hi = ["안","녕","하","세","요"]

 hello = ""

 for hihi in 0...hi.size

   hello += hihi

 end

 print hello

 

 

배열의 size를 여기서 사용하게 되는군요!

0...hi.size 사용하는 이유는 다들 아시겠죠?

요소 수는 5개인데 인덱스는 0부터 시작하니

0 ~ 4까지만 반복해야 하기 때문입니다.

0..hi.size - 1 을 사용하셔도 좋습니다.

 

다음은 while 문입니다.

while 문은 while 조건 으로 사용이 가능합니다.

예제를 보시죠!

 

 

 a = 0

 while a < 5 # a 가 5보다 작으면 반복

   a += 1

   print a

 end 

 

 

보시다시피 조건을 만족할 경우에 반복을 계속합니다.

조건이 항상 참 (1>0 이라던가) 이라면 무한 반복이 되겠죠?

loop 문은 이와 유사합니다.

 

 

 i = 0

 loop do

   i += 1

   print i

 end

 # 바로 이렇게 하시면 무한 반복!

 

 

자, 그럼 어떻게 하면 이 망할 무한 반복에서 빠져나올 수 있을까요?

답은 간단합니다. break 문을 사용하시면 됩니다.

break 문은 실행중인 반복을 중단하고 빠져나오는 역할을 합니다.

 

 

 1. loop 문에 사용

 

 i = 0

 loop do

   if i == 3

     break

   end

   i += 1

   print i

 end

 

-----------------------------------------------------------

 

 2. while 문에 사용

 

 a = 0

 while a < 5

   break if a == 3

   a += 1

   print a

 end

 

 

잠깐! 두번째 예제를 보시면 break if a == 3 이라고 되어있습니다.

end 가 빠져있는데, 이렇게 사용해도 될까요?

물론 가능합니다. 이렇게 간단한 조건문은 

실행내용 if 조건 의 형식으로 사용이 가능합니다.

 

마지막으로 next 문입니다.

next 문은 break 처럼 반복을 완전히 중단하지 않고,

현재의 처리를 뛰어넘어 다음의 처리를 실행합니다.

말이 좀 어렵나요? 예제를 보시면 이해하실 거에요!

 

 

 for i in 1..5

   next if i == 3 # i가 3일 경우 다음 처리로 이동

   print i

 end

 

 

하핫.. 1:25에 끝났네요.

강좌란게 쓰는데 오래 걸리기는 하나 봅니다.

 

 

#4. 숙제

 

1 ~ 100까지의 합을 for, loop, while 문을 이용해서 각각 출력합니다.

1 ~ 100까지의 숫자 중 홀수의 합을 for, loop, while 문을 이용해서 각각 출력합니다.

 

어떻게 해야할지 감이 잡히지 않으신다면 아래를 드래그해 보세요.

if 숫자%2 == 0 이라면 숫자는 짝수입니다.

 

 

* 4강부터는 실제로 스크립트를 제작할 예정입니다.

만들어 보고 싶은 스크립트를 덧글로 달아주세요.

?

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
25 고급강의실 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
» 고급강의실 뮤'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(김원배) | 사신지(김병국)