잠시 머릿속에 게임 상점을 떠올려볼까요?
어떤 물건을 선택하냐에 따라 사용하는 돈과 구매하는 물건이 달라집니다.
스킬을 사용할때도 생각해볼까요?
누른 키가 무엇인지에 따라 다양한 스킬이 사용됩니다.
위처럼 선택한 내용에 따라 다양한 결과를 만드는 방법을 배워보려합니다.
c언어 용어론 '조건'이라고 부릅니다. 조건이 참인지 거짓인지에 따라 실행할 내용을 다르게 만듭니다.
잠시 자판기를 떠올려볼까요?
자판기에 500원, 1000원짜리 음료수가 있을때 500원을 넣었다면 어떻게 될까요?
500원짜리 음료수 버튼에 빨간불이 들어오게됩니다.
1000원을 넣으면 어떻게 되죠? 500원, 1000원 음료수 에 빨간불이 들어오게됩니다.
코드로 봐볼까요?
#include <stdio.h>
int main()
{
printf("음료수 자판기입니다.\n\n");
printf("1. 500원짜리 음료수\n");
printf("2. 1000원짜리 음료수\n\n");
printf("동전을 넣어주세요. ");
int coin;
scanf("%d",&coin);
printf("\n\n");
if(coin<500){
printf("구매할 수 있는 물건이 없습니다");
}
else if(coin>=500 && coin <1000){
printf("500원짜리 음료수를 구매할 수 있습니다");
}
else{
printf("500원 혹은 1000원짜리 음료수를 구매할 수 있습니다");
}
return 0;
}
동전 금액에 따라 결과가 달라지는걸 볼 수 있습니다.
![]() |
![]() |
![]() |
게임을 만드는데 있어 정말 유용할 것 같지 않나요? 무조건 쓸 수 밖에 없습니다. 정말 중요합니다.
if, else if, else 세가지의 명령어를 이용합니다.
if(조건) { |
![]() |
1. if(조건) 이 참이면 1번 내용을 실행하고, 2. else if(조건) 이 참이면 2번을 실행하고, 3. else 는 if와 else if 둘다 거짓이였을경우 실행됩니다. |
조건 안에는 어떤 내용이 올까요?
크게 두가지가 옵니다.
1. 관계연산자 2. 논리연산자
관계연산자는 2 < 3 처럼 두 수의 관계를 비교하는 연산자입니다. a>b (a가 b보다 크면 참), a>=b (a가 b이상이면 참), a<b (a가 b보다 작으면 참), a<=b (a가 b이하면 참), a==b (a랑 b랑 같으면 참), a!=b (a랑 b가 다르면 참) 이렇게 6가지가 존재합니다. |
논리연산자는 조건이 여러개일때 참거짓을 따지는 용도로 쓰입니다. && 랑 || 가 있습니다. &&는 두 조건이 참이어야 결과로 참을 표시합니다. if(어떤 수가 짝수 && 어떤수가 10보다 크면){ } -> 어떤수가 짝수이고 10보다 크면 실행됩니다. ||는 두 조건중 한개라도 참이면 결과로 참을 표시합니다. if(어떤 수가 짝수 || 어떤수가 10보다 크면) { } -> 어떤수가 짝수거나 10보다 크면 실행됩니다. |
그럼 이제 활용예제들을 보면서 연습해볼까요?
![]() |
![]() |
![]() |
선택한 번호가 무엇인지에 따라 실행결과를 달라지게 만들었습니다.
꼭 if, else if, else를 다 써야하는건 아닙니다.
if만 쓰거나, if와 else만 쓰거나, if else if 를 쓰는등 상황에 맞게 사용하면 됩니다.
![]() |
![]() |
![]() |
if문 안의 n%2의미는 n을 2로 나눴을때 나머지를 뜻합니다.
어떤 수를 2로 나누면 1또는 0밖에 없기에
n을 2로 나눈 나머지가 0이면 짝수, 그렇지 않으면 홀수이므로 if, else 를 사용했습니다.
연습 문제
1. 소지금을 입력받고, 아래처럼 동작하게 만들어 봅시다.
![]() |
![]() |
![]() |
![]() |
2. 1번을 해냈다면, 아래 기능도 추가해주세요.
![]() |
![]() |
완성코드
#include <stdio.h>
int main()
{
printf("소지금을 입력해주세요 : ");
int money;
scanf("%d",&money);
printf("\n무기상점에 입장했습니다.\n");
printf("1. 청동검 500원\n");
printf("2. 철검 1000원 \n");
printf("구매할 물건 번호는 ?");
int n;
scanf("%d",&n);
printf("\n");
if(n==1){
if(money >= 500){
money = money - 500;
printf("청동검을 구매하고 %d원이 남았습니다.", money);
}
else{
printf("소지금이 부족합니다.");
}
}
else if(n==2){
if(money >= 1000){
money = money - 1000;
printf("철검을 구매하고 %d원이 남았습니다.", money);
}
else{
printf("소지금이 부족합니다.");
}
}
return 0;
}
오늘 수업을 정리해보면!
조건에 따라 실행내용이 달라지게 만드는 방법 : if, else if, else 를 사용하자.
입니다.
게임개발을 희망하는 초등학생, 중학생, 고등학생들을 위한 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
초등, 중등, 고등 1:1 원격 c언어 교육문의
010 - 4537 - 7998
현재 대치동 학원에서 코딩강사로 활동중에 있습니다
영재고, 과학고 내신 /
초등, 중등, 고등 입문반, 초급, 중급, 정올반 /
앱, 게임 제작반 문의주세요!
'박기완 코딩교육 > 게임개발을 희망하는 초중고 학생들을 위한 c언어' 카테고리의 다른 글
8장. 배열. 게임 내 인벤토리를 만들어보자. (0) | 2020.10.13 |
---|---|
7장. 반복. 몬스터와 싸워보자. (0) | 2020.10.06 |
5장. 입력. 소지금을 입력해주세요. (0) | 2020.10.01 |
4장. 게임을 만들기 위한 5가지 필수 문법 (0) | 2020.10.01 |
3장. 변수. HP가 50인 전사가 생성되었습니다. (0) | 2020.10.01 |