본문 바로가기

박기완 코딩교육/게임개발을 희망하는 초중고 학생들을 위한 c언어

6장. 조건. 어떤 물건을 구매하시겠습니까? 1)청동검 2)철검

 잠시 머릿속에  게임 상점을 떠올려볼까요?

   어떤 물건을 선택하냐에 따라   사용하는 돈과   구매하는 물건이 달라집니다.

 

스킬을 사용할때도 생각해볼까요?

누른 키가 무엇인지에 따라  다양한 스킬이 사용됩니다.

 

위처럼   선택한 내용에 따라  다양한 결과를 만드는 방법을 배워보려합니다.

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(조건) {
 실행할 내용;
}
else if(조건){ 
 실행할 내용;
}
else {
 실행할 내용;
}

1. if(조건)  이  참이면    1번 내용을 실행하고,  
   거짓이면 1번을 실행하지 않고, 
   else if(조건) 으로 넘어갑니다.

2. else if(조건) 이 참이면 2번을 실행하고,
  거짓이면 2번을 실행하지 않고
   else로 넘어갑니다.

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 를 사용하자.

입니다.

 

 

hackee.tistory.com/255

 

게임개발을 희망하는 초등학생, 중학생, 고등학생들을 위한 c언어 책

이 글을 보고있다는건 게임개발에 관심있다는 거겠죠? 그렇다면 정말 잘보셨습니다. 읽기 쉽고,  단기간 내에 자기꺼화 할 수 있게 최대한 핵심만 담았습니다. 게임개발에 대해 궁금한게 많아

blog.codingteacher.kr

hackee.tistory.com/256

 

1장. 프로그램 결국 0과 1

프로그램이란 단어를 들어보셨나요? 앞으로 우리가 만들게될 게임들!! 결국 '프로그램' 입니다. 프로그램이란 컴퓨터가 실행하는 파일을 뜻합니다. 스마트폰을 사용하고 계신다면, 자주 접하는

blog.codingteacher.kr

hackee.tistory.com/257

 

2장. 출력. 전사키우기 게임에 오신걸 환영합니다.

 C언어에서 출력이란 화면에 나타나는 모든걸 뜻합니다. 예를들어 지뢰찾기 게임을 켰을때 화면에 나타나는 지뢰들의 이미지. 이런 모든걸 다 '출력'이라 말하죠.  위 사진에서 보이는 모든 내�

blog.codingteacher.kr

hackee.tistory.com/258

 

3장. 변수. HP가 50인 전사가 생성되었습니다.

 잠시 머릿속에 자판기를 떠올려볼까요? 자판기를 보면 동전투입구와 지폐투입구가 있고, 얼마의 돈을 넣었는지가 조그만 창에 표시됩니다. 자판기에 오백원을 넣으면 화면에 500이라 표시되고

blog.codingteacher.kr

hackee.tistory.com/259

 

4장. 게임을 만들기 위한 5가지 필수 문법

 프로그램은 0과 1로 이루어져있다 했습니다. 하지만 0과 1로 프로그램을 만들기엔 시간도 오래걸리고 어렵기에, C언어로 프로그램을 만들면, 컴파일러가 0과1로 바꿔준다라고 말씀드렸습니다. �

blog.codingteacher.kr

hackee.tistory.com/260

 

5장. 입력. 소지금을 입력해주세요.

이번 시간엔 정말 매력적인 '입력' 을 배워보겠습니다. 입력이 무엇을 의미하는지 이해 하기 위해 두 코드를 쳐보고  실행결과를 비교해봅시다. #include int main() { int money; money = 500; printf("소지금.

blog.codingteacher.kr

초등, 중등, 고등  1:1 원격 c언어 교육문의

010 - 4537 - 7998

 

현재 대치동 학원에서 코딩강사로 활동중에 있습니다

영재고, 과학고 내신 /

초등, 중등, 고등 입문반, 초급, 중급, 정올반 /

앱, 게임 제작반  문의주세요!