7장. 반복. 몬스터와 싸워보자.
몬스터와 싸우는 기능을 만든다고 생각해볼까요?

아래 사진을 봅시다.
좌측처럼 한번만 공격하고 전투가 종료되는게 맞을까요,
우측처럼 고블린이 죽거나, 플레이어가 도망쳐서 전투씬이 종료되는게 맞을까요?
![]() | ![]() |
좌측보단 우측이 맞을겁니다.
우리가 지금까지 배운거로 우측처럼 만들 수 있을까요?
만들지 못합니다.
고블린의 HP가 몇인지 모르기에, 왼쪽의 코드를 몇번 더 써야할 지 모릅니다.
이럴땐, 우측처럼 반복문 (while)을 이용해주면 우리가 원하는 횟수만큼 반복시킬 수 있습니다.
![]() | ![]() |
특정 동작을 원하는 만큼 반복시키는 방법을 C언어 용어론 '반복' 이라 부릅니다.
반복엔 2가지 문법이 존재합니다. while과 for.
우선 while부터 알아봅시다.
![]() | ![]() | 1. while 괄호안의 조건이 참이면 2. 중괄호 { } 안에 있는 내용이 실행된다. 3. 중괄호 { } 안에 있는 내용을 다 실행했다면, 다시 1번으로 올라가 while 괄호안의 조건이 참거짓인지 따진다. 4. 조건이 참이면 2번행동을 반복한다. 거짓이면 닫는 중괄호 아래부분으로 빠져나온다. |
while을 사용한 예제코드로 한번 더 볼까요?
![]() | ![]()
![]() |
코드는 위에서부터 아래로 실행이 되는데, while문을 만나면 조건이 참인동안 { } 안에서 머무릅니다.
그러다 조건이 거짓이되면 { } 을 빠져나오고 밑의 코드들을 실행하게 됩니다.
while문을 활용한 예제를 좀더 봐볼까요?
![]() | ![]() |
i가 9보다 작거나 같은동안 괄호안의 두 문장을 반복합니다.
while 괄호안의 조건으로 if때 배운 관계연산자와 논리연산자를 사용하면 됩니다.
관계연산자 ( >, <, >=, <=, ==, !=)
논리연산자 (&&,||)
이번엔 직접 while문을 이용해 상점기능을 구현해볼까요?
소지금을 입력받고, 3번을 누르거나 소지금이 다 떨어지지 않는한 상점에 머무르게 만들어봅시다.
![]() | ![]() |
![]() | ![]() |
#include <stdio.h> int main() { printf("소지금을 입력해주세요 : "); int money; scanf("%d",&money); while(money > 0) { printf("\n상점에 입장했습니다.\n"); printf("소지금 : %d \n\n",money); printf("1. HP 포션 50원\n"); printf("2. MP 포션 70원\n"); printf("3. 상점에서 나가기\n"); int n; scanf("%d",&n); if(n==1){ if(money>=50){ printf("HP포션을 구매했습니다.\n"); money = money - 50; } else { printf("소지금이 부족합니다.\n"); } } else if(n==2){ if(money >= 70){ printf("MP포션을 구매했습니다.\n"); money = money - 70; } else { printf("소지금이 부족합니다.\n"); } } else if(n==3){ printf("상점에서 나갔습니다.\n"); break; } } return 0; }
코드에 작성한 break라는 명령어는 한국어로 해석시 '멈추다', '부수다' 처럼 실행중인 반복문에서 빠져나오게 만듭니다.
즉, 자신이 속한 반복문에서 빠져나와 while문의 } 닫는 중괄호 밑의 내용을 실행하게 됩니다.
오늘은 특정 동작을 원하는 만큼 반복하는 방법에 대해 알아보았습니다.
while과 for문이 있고, 그 중 while문에 대해서만 배워봤습니다!
그럼 오늘도 파이팅입니다.
게임개발을 희망하는 초등학생, 중학생, 고등학생들을 위한 c언어 책
이 글을 보고있다는건 게임개발에 관심있다는 거겠죠? 그렇다면 정말 잘보셨습니다. 읽기 쉽고, 단기간 내에 자기꺼화 할 수 있게 최대한 핵심만 담았습니다. 게임을 어떻게 만드는지 궁금해
blog.codingteacher.kr
1장. 프로그램 결국 0과 1
프로그램이란 단어를 들어보셨나요? 앞으로 우리가 만들게될 게임들!! 결국 '프로그램' 입니다. 프로그램이란 컴퓨터가 실행하는 파일을 뜻합니다. 스마트폰을 사용하고 계신다면, 자주 접하는
blog.codingteacher.kr
2장. 출력. 전사키우기 게임에 오신걸 환영합니다.
C언어에서 출력이란 화면에 나타나는 모든걸 뜻합니다. 예를들어 지뢰찾기 게임을 켰을때 화면에 나타나는 지뢰들의 이미지. 이 모든걸 다 '출력'이라 합니다. 위 사진에서 보이는 모든 내용�
blog.codingteacher.kr
3장. 변수. HP가 50인 전사가 생성되었습니다.
잠시 머릿속에 자판기를 떠올려볼까요? 자판기를 보면 동전투입구와 지폐투입구가 있고, 얼마의 돈을 넣었는지가 조그만 창에 표시됩니다. 자판기에 오백원을 넣으면 화면에 500이라 표시되고
blog.codingteacher.kr
4장. 게임을 만들기 위한 5가지 필수 문법
프로그램은 0과 1로 이루어져있다 했습니다. 하지만 0과 1로 프로그램을 만들기엔 시간도 오래걸리고 어렵기에, C언어로 프로그램을 만들면, 컴파일러가 0과1로 바꿔준다고 말씀드렸습니다. 그�
blog.codingteacher.kr
5장. 입력. 소지금을 입력해주세요.
이번 시간엔 정말 매력적인 '입력' 을 배워보겠습니다. 입력이 무엇을 의미하는지 이해 하기 위해 두 코드를 쳐보고 실행결과를 비교해봅시다. #include int main() { int money; money = 500; printf("소지금.
blog.codingteacher.kr
6장. 조건. 어떤 물건을 구매하시겠습니까? 1)청동검 2)철검
잠시 머릿속에 게임 상점을 떠올려볼까요? 어떤 물건을 선택하냐에 따라 사용하는 돈과 구매하는 물건이 달라집니다. 스킬을 사용할때도 생각해볼까요? 누른 키가 무엇인지에 따라 다양�
blog.codingteacher.kr
초등, 중등, 고등 1:1 원격 c언어 교육문의
010 - 4537 - 7998
현재 대치동 학원에서 코딩강사로 활동중에 있습니다
영재고, 과학고 내신 /
초등, 중등, 고등 입문반, 초급, 중급, 정올반 /
앱, 게임 제작반 문의주세요!