C 언어 - 조건문 if else

컴퓨터/C

728x90
반응형

조건문 if else문 

지난 포스트에서는 단일 if문에 대하여 알아보았습니다. 

단일 if문은 조건이 만족하면 추가적인 명령을 실행하는 제어를 할 때 주로 사용합니다.

if else 문은 선택지가 2개가 있을 때 프로그램의 흐름을 제어하기 위해서 주로 사용합니다. 

 

if else문의 사용방법

if else문의 기본 형식

  • 모든 조건문의 구조의 개념은 같습니다.
  • 중괄호{}로 소스코드의 영역을 지정할수 있고 존재하지 않는다면 다음 한줄의 명령(;를 만날때 까지)만을 실행 합니다.
  • if else문은 조건이 만족하면 if문을 실행하고 만족하지 않는다면 else문을 실행 합니다. 
  • else문에 아무것도 없다면 단일if문과 동일한 동작을 수행 합니다. 다만 중괄호 {}로 영역을 표시해 주어야합니다.

if else문 활용해보기

예제 1) if else 문을 이용한 흐름제어

#include <stdio.h>

int main()
{
	int input = 1;

	printf("input의 값이 1이면 공격 \t  2이면 방어 입니다. \n");

	if (input == 1)
	{
		printf("공격");
	}
	else  // if (input == 2 )로도 가능하지만 불필요한 타이핑을 줄일 수 있음 
	{
		printf("방어");
	}
	
}

결과 보기

더보기

if와 else를 통해 흐름을 제어할 수 있습니다. 단일 if문 2개를 사용해도 동일한 동작을 가능하게 하지만
기능의 차이가 약간 있습니다. 예제 2에서 조금 더 자세히 설명해 보도록 하겠습니다.

 

예제 2) 단일if문과의 차이 - 다양한 케이스를 호환 할수 있다.

#include <stdio.h>

int main()
{
	int myscore = 45;

	if (myscore >= 60)
	{
		printf("자격증 시험 점수 통과 !");
	}
	else
	{
		printf("아쉽지만, 불합격 했습니다.");
	}
	
}

결과 보기

더보기

if이외의 다른 값을 구분하여 제어로 하고 싶을 때 조금더 단일 if문 보다 효율적 입니다.

단일 if문과 if else문 조합해 보기.

 

if문과 if else문을 조합하여 사용하는 것 또한 가능합니다. 

 

간단한 문제 예제를 한번 내보도록 하겠습니다. 한번 생각해서 소스코드를 작성해 보세요.

 

예제 ) 조건문의 조합으로 문제의 흐름 구현해 보기

  • int형 변수 input 이 있습니다.  
  • 값에 대하여 흐름을 제어해 보도록 합시다.
  • input 의 값이 1이면 공격을 시작합니다.
  • input 의  값이 2이면 수비를 시작합니다.
  • input 의 값이 3이면  후퇴합니다.
  • input 의 값이 그 외의 값이면 잘못된 값을 입력했습니다. 출력

예시 - input = 100 의 경우

예시 2 input = 2의 경우

한번 소스코드를 단일 if문과 if else문을 이용해서 작성 해 보세요!

 

힌트 - 조건문 안에 또다른 조건문을 넣을 수 있습니다. 

#include <stdio.h>

int main()
{
	int a = 0
    int b = 1
	if (a == 0)
	{
		if(b== 0)
			printf("a와 b는 모두 0 입니다.\n");
		if (b ==1)
			printf("a는 0 b는 1 입니다.\n");
	}
	else
		printf("a는 0이 아닙니다.\n");
	
}

결과 보기

더보기
#include <stdio.h>

int main()
{
	int input = 2;

	if (input == 1 || input == 2 || input == 3)
	{
		if(input == 1)
			printf("공격을 시작 합니다.\n");
		if (input == 2)
			printf("수비를 시작 합니다.\n");
		if (input == 3)
			printf("후퇴 합니다.\n");
	}
	else
		printf("잘못된 값을 입력했습니다.\n");
	
}

구현은 가능하지만 효율적이지는 않습니다. 이런 기본적인 논리 구조를 설계를 할수 있어야만,  왜 다양한 문법들을 제공하고 고급언어들에 기술들이 왜 필요한지를 깨닫게 될 것입니다.

728x90
반응형

'컴퓨터 > C' 카테고리의 다른 글

C 언어 - 표준 입력  (0) 2021.06.01
C 언어 - if ~ else if ~ else  (0) 2021.05.31
C 언어 - 조건문 IF  (0) 2021.05.29
C 언어 - 표준 출력  (0) 2021.05.25
C 언어 - 주석(Comment)  (0) 2021.05.24

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :