조회 수 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강부터는 실제로 스크립트를 제작할 예정입니다.

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

?

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

    Date2016.01.12 Category초급강의실 By천무 Views7384 Votes1
    read more
  2. 스위치를 이용한 상자 만들기 강좌

    Date2013.12.28 Category중급강의실 By리븐 Views1396 Votes0
    Read More
  3. 메뉴 용어 바꾸기

    Date2014.02.23 Category중급강의실 By주섬주섬 Views1395 Votes1
    Read More
  4. VX 달리는(?!) 이벤트식 전투

    Date2014.03.12 Category중급강의실 By빙냥이 Views1387 Votes0
    Read More
  5. [동영상] RPG Maker MV 튜토리얼 강좌 13화 버튼

    Date2015.12.23 Category초급강의실 By작긔 Views1385 Votes0
    Read More
  6. 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정.

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1373 Votes0
    Read More
  7. 뮤's 실전 스크립팅 강좌 [2. 기초 문법 다지기 (중)]

    Date2013.09.16 Category고급강의실 By마니아 Views1371 Votes0
    Read More
  8. 10퍼센트 확률로 당첨되기(브금추가)

    Date2014.04.30 Category중급강의실 By천둥번들 Views1370 Votes1
    Read More
  9. 초보의 게임제작 도전기! #0 [RPG 만들기?]

    Date2015.05.05 Category중급강의실 By치와도라 Views1359 Votes1
    Read More
  10. rpg vx 깨우치기(2)맵배치를 조화롭게해보자.

    Date2014.02.19 Category중급강의실 By리폼 Views1354 Votes0
    Read More
  11. 식량이벤트

    Date2014.02.28 Category중급강의실 By주섬주섬 Views1338 Votes1
    Read More
  12. [동영상] RPG Maker MV 튜토리얼 강좌 11화 물체 움직이기 응용

    Date2015.12.23 Category초급강의실 By작긔 Views1332 Votes0
    Read More
  13. XP에대해서 도움이 되는 강좌.

    Date2014.01.20 Category중급강의실 By주섬주섬 Views1299 Votes0
    Read More
  14. 게임도중에 익스플로러 뜨게 하고싶나요?

    Date2014.01.27 Category고급강의실 By 운 Views1278 Votes0
    Read More
  15. Input 객체의 키코드 확장

    Date2016.04.05 Category초급강의실 By러닝은빛 Views1267 Votes0
    Read More
  16. 런타임 안깔고도 실행되게하는법!(윈도7기준)

    Date2014.02.21 Category중급강의실 By공박사 Views1255 Votes0
    Read More
  17. 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용)

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1229 Votes0
    Read More
  18. 스킬 주문서를 만들어봅시다!

    Date2014.03.24 Category중급강의실 Byneopop Views1229 Votes0
    Read More
  19. VX ACE XAS로 액션 RPG를 만들어보자! - 2. 적에게 공격을 해보자!

    Date2015.10.05 Category고급강의실 By데크크래프트 Views1221 Votes2
    Read More
  20. 대쉬몬스터만들기

    Date2014.08.24 Category중급강의실 By만두카레 Views1216 Votes0
    Read More
  21. 그림표시50개끝? 51개 해보자.

    Date2014.12.01 Category고급강의실 By 운 Views1191 Votes1
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 Next
/ 10






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

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