Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

문타쿠, 공부하다.

[C언어 코딩 도장] Unit 18. else를 사용하여 두 방향으로 분기하기 본문

C언어/C언어 코딩 도장

[C언어 코딩 도장] Unit 18. else를 사용하여 두 방향으로 분기하기

개발새발 문타쿠 2023. 8. 24. 17:08

INTRO

if 조건문은 분기를 위한 문법이다.

 

분기란?

'둘 이상으로 갈라지다'라는 뜻으로 프로그램의 흐름을 둘 이상으로 나누는 것을 말함

 

if에 else를 사용하면 조건식이 만족할 때와 만족하지 않을 때 각각 다른 코드를 실행할 수 있다.

즉, 프로그램이 두 방향으로 분기하는 것이다.


18.1 else 사용하기

#include <stdio.h>

int main(void)
{
	int num1 = 5;

	if (num1 == 10)
	{
		printf("10입니다.\n");
	}
	else
	{
		printf("10이 아닙니다.\n");
	}

	return 0;
}

18.2 else와 세미콜론

#include <stdio.h>

int main(void)
{
	int num1 = 10;

	if (num1 == 10)
	{
		printf("10입니다.\n");
	}
	else;
	{
		printf("10이 아닙니다.\n");
	}

	return 0;
}

위와 같이 else에 세미콜론을 붙이면 그 뒤에 오는 코드는 else와 관계가 없어져버려 조건식의 결과와는 관계없이 항상 실행되니 주의


18.3 else에서 중괄호 생략하기

#include <stdio.h>

int main(void)
{
	int num1 = 10;

	if (num1 == 10)
		printf("10입니다.\n");
	else
		printf("10이 아닙니다.\n");

	return 0;
}

18.4 if 조건문의 동작 방식 알아보기

"0은 거짓"

#include <stdio.h>

int main(void)
{
	if (0)
		printf("참\n");
	else
		printf("거짓\n");

	return 0;
}


"0이 아닌 양수와 음수를 넣으면 참"

#include <stdio.h>

int main(void)
{
	if (1)
		printf("참\n");
	else
		printf("거짓\n");

	return 0;
}
#include <stdio.h>

int main(void)
{
	if (-1)
		printf("참\n");
	else
		printf("거짓\n");

	return 0;
}


최근에 나온 언어는 true(참), false(거짓)와 같은 전용 자료형을 가지고 있지만, C언어는 0을 거짓으로, 그 이외의 값은 모두 참으로 사용한다.

 

실수도 마찬가지로 0.0f는 거짓, 0.0f가 아닌 값들은 참이다.


18.5 조건식을 여러 개 지정하기

#include <stdio.h>

int main(void)
{
	int num1 = 10;
	int num2 = 20;

	if (num1 == 10 && num2 ==20)
		printf("참\n");
	else
		printf("거짓\n");

	return 0;
}
#include <stdio.h>

int main(void)
{
	int num1 = 10;
	int num2 = 20;

	if (num1 == 10)
	{
		if (num2 == 20)
		{
			printf("참\n");
		}
		else
		{
			printf("거짓\n");
		}
	}
	else
	{
		printf("거짓\n");
	}

	return 0;
}
#include <stdio.h>

int main(void)
{
	int num1 = 10;
	int num2 = 20;

	if (num1 == 10)
		if (num2 == 20)
			printf("참\n");
		else
			printf("거짓\n");
	else
		printf("거짓\n");

	return 0;
}