- FCO 봉훈 유튜브에 올라온 현직 게임 개발자피셜 [51]
- 로아 보석 시스템, 이젠 정말 개선이 필요합니다 [417]
- 메이플 어제 수정된 아이템버닝 보상관련 공지사항 등 [202]
- 걸그룹 1황 장원영 [19]
- 차벤 제보 했다가 역관광 중인 영상 [18]
- 걸그룹 머리에 뭐라도 얹으면 실패없는 김채원 [7]
1. if - else
2. if - else if - else
3. switch
4. while
5. for
6. repeat
7. do-until
8. break
9. continue
앞서 연산자에 대한 설명에서 저는 조건문 if를 사용하였습니다. 물론 오브젝트는 특정한 사건이 벌어지는 것을 이벤트를 통해 감지할 수 있지만, 구체적으로 어떠한 변수가 어떤 값일 경우에만 코드가 실행되게 하기 위해서는 조건문을 사용해야 합니다.
또한 우리는 반복문을 알아볼 것입니다. 반복문은 일정한 코드를 여러번 작동시키기 위해 사용합니다.
if - else
조건문을 테스트하기 위해 objText라는 이름의 오브젝트를 만들었습니다. Create 이벤트에 변수를 하나 선언할 것입니다.
money = 5; |
실제로 게임에서 사용되는 돈이라고 생각하고 한번 코드를 작성해보도록 하겠습니다.
Draw 이벤트에 이와 같은 코드를 작성해봅니다. 5달러의 사과, 10달러의 포도에 대한 조건문입니다. if-else문이 적용되어 있습니다.
if(조건) { 결과1 } else { 결과2 } |
if-else 문의 구조는 이러합니다. if 괄호 안의 조건이 충족한다면 대괄호 안에 들어있는 결과1을 실행합니다. 만약 그렇지 않다면 대괄호 안에 들어있는 결과 2를 실행하게 됩니다. 조건에 충족할 시 실행되는 코드가 1줄이라면 대괄호는 생략하셔도 좋습니다.
draw_text(0,0,Apple = 5 Dollar"); if(money >= 5){ draw_text(0,24,"You can buy this item."); } else{ draw_text(0,24,"Not enough money."); } draw_text(0,48,Grape = 10 Dollar"); if(money >= 10){ draw_text(0,72,"You can buy this item."); } else{ draw_text(0,72,"Not enough money."); } |
7~12
만약 money변수의 값이 5보다 크거나 같다면 You can buy this item.을 출력하고, 그렇지 않다면 Not enough money.를 출력합니다.
16~21
만약 money변수의 값이 10보다 크거나 같다면 You can buy this item.을 출력하고, 그렇지 않다면 Not enough money.를 출력합니다.
결과는 이러합니다.
if - else if
마찬가지로 money 변수의 값을 5로 선언하겠습니다.
다음은 10달러의 포도에 대한 조건문입니다.
if(조건1) { 결과1 } else if(조건2) { 결과2 } else if(조건3) { 결과 3} . . . |
if-else if-else 문의 구조는 이러합니다. 조건1이 충족한다면 결과1을 실행합니다. 만약 그렇지 않다면 조건 2를 확인하고 이 조건이 충족한다면 결과 2를 실행합니다. 모든 else if의 조건에 만족하지 않는다면 else의 결과를 출력합니다.
draw_text(0,0,Grape = 10 Dollar"); if(money >= 10){ draw_text(0,24,"You can buy this item."); } else if(money >=5){ draw_text(0,24,"Not enough money. But you can buy 'Rotten Grape'"); } else{ draw_text(0,24,"Not enough money."); } |
만약 money가 10 이상이면 포도를 살 수 있습니다.
그러나 10보다 적은 경우 다음 조건을 확인합니다. money가 5 이상이면 썩은 포도를 살 수 있습니다.
그 조건도 만족하지 못한다면 아무것도 살 수 없습니다.
결과는 이러합니다.
Switch
역시 마찬가지로 money 변수의 값을 5로 선언하겠습니다.
Draw 이벤트에는 위와 같은 Switch문을 적었습니다.
switch(값){ case 상수 : default : } |
switch문은 값에 따른 다양한 조건을 검사한 후 그에 충족하는 명령을 실행합니다.
우선 switch 괄호 안에 담긴 값을 읽어들입니다. 만약 그 값이 적혀진 case 중에 있다면 그것을 실행합니다. 어떠한 case에도 맞지 않는다면 default를 실행합니다.
switch(money){ case 0: draw_text(0,24,0 Dollar"); break; case 1: draw_text(0,24,1 Dollar"); break; case 2: draw_text(0,24,2 Dollar"); break; case 3: draw_text(0,24,3 Dollar"); break; case 4: draw_text(0,24,4 Dollar"); break; case 5: draw_text(0,24,5 Dollar"); break; |
해당 코드는 money의 값을 case와 대조하여 case에 적절한 값이 있다면 그 결과를 출력합니다. 다른 case의 코드가 함께 실행되는 것을 방지하기 위해 break를 입력해주어야 합니다.
반복문
while
while(조건){결과} |
해당 반복문은 '조건'의 내용이 만족되는 동안 '결과'를 지속적으로 실행합니다. 만일 조건의 내용이 결과를 계속 반복해도 이뤄질 수 없는 것이라면 프로그램은 무한루프에 빠지게 될 것입니다.
draw_text(0,0,"I Say Yeah! You Say Ya!"); var i = 1; while(i<=5){ draw_text(0,24+24*i,"Ya! " + string(i)); i += 1; } |
해당 반복문은 i가 5와 같거나 작은 경우, 괄호 안의 내용을 반복합니다.
괄호 안에는 Ya! + i를 출력한 후 i를 1씩 증가하도록 설정하였습니다.
실행 결과는 이러합니다.
for
for(인자1 ;인자2 ; 인자3){결과} |
인자1에 들어가는 것은 반복문을 실행하기에 앞서 초기화를 할 명령입니다. 인자2에는 while과 같은 조건이 들어갑니다. 인자3에는 괄호 안의 내용이 끝나면 실행될 명령입니다. 인자2의 조건에 만족하는 경우에 괄호안의 결과가 실행됩니다.
draw_text(0,0,"I Say Yeah! You Say Ya!"); for(var i = 1 ; i <= 5 ; i+=1){ draw_text(0,24+24*i,"Ya! " + string(i)); } |
해당 코드는 1의 값을 가진 로컬 변수 i를 선언하고, 이 i가 5보다 작거나 같을 때 까지 괄호안의 내용을 실행하는 것입니다. 그리고 그 내용을 실행한 후에는 i의 값을 1 증가시킵니다.
결과는 이러합니다.
repeat
repeat(값){결과} |
repeat은 괄호 안에 들어가있는 값만큼 대괄호 안의 결과물을 반복실행합니다.
draw_text(0,0,"Say Yeah!"); var i=1; repeat(5){ draw_text(0,24+24*i,"Yeah!"); i+=1; |
해당 반복문이 실행되면 0,24+24*i 의 위치에 Yeah! 라는 문자를 5회 출력합니다.
괄호 안에서 i의 값이 1씩 추가되기 때문에 Yeah는 0,48 위치에서부터 아래로 5개 출력됩니다.
결과는 이러합니다.
do-until
do{ 결과 }until (조건); |
until의 값을 만족할 때 까지 do의 대괄호 내용을 실행합니다. 앞서 소개해드린 while이 반대로 된 것이라고 생각하시면 편합니다.
draw_text(0,0,"Say Yeah!"); var i=1; do{ draw_text(0,24+24*i,"Yeah!"); i+=1; } until (i>5); |
해당 코드는 i가 5를 넘게 될 때까지 Yeah! 라는 문자를 출력하며 i의 값을 1씩 증가시킵니다.
출력결과는 이러합니다.
break
앞서 우리는 switch문에서 break를 이미 사용하였습니다. 이 break는 반복문에서도 사용이 가능합니다. 반복문에서 break가 사용되면 반복문을 중단하고 빠져나가게 됩니다.
draw_text(0,0,"Say Yeah!"); var i=1; repeat(5){ draw_text(0,24+24*i,"Yeah!"); i+=1; if (i==3) break; } |
해당 코드는 repeat 문을 통해 5번 내용을 실행하는 도중, i가 3이 될 경우 반복문을 빠져나가도록 작성되어있습니다.
실행결과 Yeah! 가 2회만 출력되었습니다.
continue
반복문이 실행되는 도중 continue가 작동되면 반복문의 맨 처음으로 다시 돌아가게 됩니다.
draw_text(0,0,"Say Yeah!"); for(var i = 1 ; i <= 5 ; i+=1){ if (i==3) { continue; } draw_text(0,24+24*i,"Yeah!"); } |
해당 코드는 반복문이 실행되는 도중 i가 3이 되면 continue가 작동되도록 설정되었습니다.
실행결과. (0, 24+24*3) 좌표에 'Yeah!' 라는 단어가 출력되어있지 않습니다.
Zpink