본문 바로가기
IT 기술/C언어

C언어 제어문(if, else, else if 조건문)_13일차

by 썬's 2023. 2. 9.

안녕하세요 보글리아입니다.

저번 시간에는 C언어의 연산자를 배워봤는데요

이번 시간에는 C언어에서 제공하는 제어문 중 조건문을 알아보겠습니다.

※제 수업은 이전주차에서 배운 개념을 재차 설명드리지 않습니다※

※수업 내용을 먼저 요약하고 세부적인 내용을 설명드리겠습니다※

 


요약

  1. 제어문 : 특정 조건이 주어지면, 이에 따라 작업 실행을 다르게 함
  2. 조건문 : 특정 조건 수식이 주어졌을 때, 참이면 조건문 내 문장 실행
  3. if문 : if(조건 수식) {조건이 참일 때 실행되는 문장} -> 조건이 하나일 때
  4. else문 : else { 조건이 참일 때 실행되는 문장} -> 조건이 두 개일 때, 따로 조건 수식은 적지 않음
  5. else if문 : else if(조건 수식) {조건이 참일 실행되는 문장} -> 조건이 세 개 이상일 때

C언어의 제어문

C언어에서 제어문이란 특정 조건에 따라 작업의 실행 흐름을 변경할 수 있는 문법을 말합니다.

프로그래밍 한 소스 코드는 위에서 아래로 순차적으로 명령이 진행됩니다. 

하지만 여러 가지 조건에 따라 기존에 정해 놓은 형식과 다르게 추가 명령을 내리기도 합니다.

이럴 때 사용하는 것이 바로 제어문입니다.

 

예를 들어, 해외여행을 간다고 가정해 보겠습니다. 여행 계획을 세우고 여행을 가지만, 만약 비가 오면 여행이 취소가 될 수 있고 버스가 제 때 오지 않아 비행기를 놓칠 수 있습니다. 또한 가려고 했던 음식점이 예약이 꽉 차 못 가는 경우도 있습니다. 그러면 저희는 또 다른 방법을 생각해야 합니다.

이처럼 여러 가지 조건에 따라 상황을 제어하는 것을 제어문이라 합니다.

 

C언어에서 제공하는 제어문에는 총 두 가지가 있습니다.

  • 조건문 : 예외 상황에 대처하기 위한 문법 -> if, switch
  • 반복문 : 특정 상황을 반복하는 문법 -> for, while, do while

오늘은 이 중 if 조건문을 알아보겠습니다.

 


1. if 조건문

C언어에서 조건문은 특정 조건을 부여하고 그 조건에 부합하면, 해당 내용을 실행하고 조건에 부합하지 않으면, 해당 내용을 실행하지 않는 문법을 말합니다. if 조건문의 사용법은 다음과 같습니다.

if(조건 수식) {조건에 맞으면 실행할 내용}

여기서 조건 수식의 결과 값이 참이면, { } 안에 있는 내용을 실행시킵니다.

 

하단 코드를 보시면, 먼저 변수 a를 보겠습니다. 변수 a를 선언하고 값을 5 대입했습니다.

그리고 첫 번째 if문의 조건식에 a가 2보다 큰지를 검사합니다. 검사한 결과 a가 2보다 크기 때문에 if문 { } 내 문장을 실행합니다.

 

다음은 변수 b를 보겠습니다. b에는 값을 10 대입하고 b에 관한 조건식은 두 번째 if 문에 작성했습니다.

두 번째 if 조건식을 보면 b < 7보다 작다고 나와있습니다. b의 값은 10으로 조건식이 거짓이기 때문에, 해당 if문 내 문장을 출력되지 않습니다.

 

이를 출력한 결과 첫 번째 if문 내 문장을 제대로 출력된 반면, 두 번째 if문의 문장은 출력되지 않는 것을 볼 수 있습니다.

#include <stdio.h>

int main()
{
	int a = 5;
	int b = 10;
	
	if (a > 2)
	{
		printf("a는 5보다 큽니다!! \n");
		printf("a의 값은 5입니다 \n");
	}

	if (b < 7)
	{
		printf("b의 값은 10입니다 \n");
		printf("그렇기에 이 문장을 출력되지 않습니다 \n");
	}


	return 0;
}

출력 결과
출력 결과

이처럼 if 조건식은 조건 수식이 참이어야 if문 내에 있는 문장을 출력합니다.

if 조건식의 작업 수행은 다음과 같습니다.

  1. if문 조건 수식에 검사하고 싶은 변수 작성
  2. 해당 조건 수식이 참인지 거짓인지 판별
  3. 조건 수식이 참이면 if문 내 문장 출력
  4. 조건 수식이 거짓이면 if문 내 문장을 건너 띄고 if문 빠져나옴

여기서 추가로 if문 내 문장은 개수 제한을 두지 않습니다. 다만 조건 수식이 참이어야 해당 문장이 출력된다는 점은 알아 두셔야 합니다.

if문 작동 순서
if문 작동 순서

 


2. else문

C언어에서 조건문은 조건 수식의 참과 거짓에 따라 조건문 내 문장이 출력된다고 했습니다.

하지만, 조건문을 사용하다 보면 상황이 서로 반대되는 조건을 작성해야 하는 상황도 있습니다.

 

예를 들어, 실생활에 적용하면, '운동을 하고 밥을 먹는다'와 '운동을 하지 않고 밥을 먹는다'와 같은 두 가지 가정이 있을 수 있습니다. 여기서 운동을 하다와 안 하다는 서로 반대되는 조건이기 때문에 이를 굳이 if문을 두 번 사용해 작성하는 것보다 한 번에 작성하는 것이 더 편리합니다.

 

이런 상황에 쓰이는 게 else문입니다.

else문은 if문의 조건 수식이 거짓일 때, else문은 참으로 판정 돼 else문 내 문장을 출력합니다.

반대로 if문의 조건 수식이 참이면, if문 내 문장이 실행되고 else문 내 문장은 건너 띄게 됩니다. 사실 if문이 참이면, 굳이 else문을 작성할 필요는 없습니다 ㅎㅎ

 

하단 코드를 보시면, 변수 a는 5로 설정하고 if문에서 a가 2보다 작다고 조건 수식을 걸었습니다. 그럼 else문은 자동으로 if문의 조건 수식과 반대 조건을 가집니다. 여기서 else문은 따로 조건 수식을 작성하지 않습니다.

아무튼 하단 코드는 if문의 조건 수식이 거짓이라 else문의 문장이 출력된 것을 보실 수 있습니다.

#include <stdio.h>

int main()
{
	int a = 5;
	
	if (a < 2)
	{
		printf("a는 2보다 작지 않습니다 \n"); // 조건 수식이 거짓이라 이 문장은 건너띔
	}
	else
	{
		printf("a는 2보다 큽니다!! \n"); // 조건 수식이 참이라 해당 문장 실행
	}

	return 0;
}

출력 결과
출력 결과


3. else if

자 이제 조건이 두 개인 것을 봤으니 조건이 3개 이상이 상황이 생길 수 있겠죠?? ㅎㅎ

조건이 3개 이상일 때부터 사용하는 것을 else if문이라 합니다. 

if문은 조건 수식을 작성해 주고 else문은 조건 수식을 작성하지 않는다고 했는데요.. else if문은 if문과 같이 조건 수식을 작성해주셔야 합니다!!

 

하단 코드를 보시면, if문의 조건 수식에 a가 2와 동일하다고 걸었습니다. 그리고 추가로 조건을 3개 이상을 걸고 싶으시다면, else가 아닌 else if로 추가 조건 수식을 작성해 주셔야 합니다. 코드를 실행하면, a가 5일 때의 조건 수식이 참이라 정상적으로 문장이 출력된 것을 보실 수 있습니다.

#include <stdio.h>

int main()
{
	int a = 5;
	
	if (a == 2) { printf("a는 2가 아닙니다 \n"); }
	else if (a == 3) { printf("a는 3이 아닙니다 \n"); }
	else if (a == 4) { printf("a는 4도 아닙니다 \n"); }
	else if (a == 5) { printf("a는 5가 맞습니다!! \n"); }

	return 0;
}

출력 결과
출력 결과

 


오늘은 C언어에서 제어문 중 if 조건문을 알아봤습니다.

그럼 다음 시간에는 새로운 조건문인 switch 조건문을 배워 보도록 하겠습니다.

긴 글 읽으시느라 너무너무 고생 많으셨습니다~~

댓글