본문 바로가기
코딩/C 언어

C언어 기초 - 조건문 if 이해하기

by DIYver 2020. 7. 5.

본문 목표

 C 언어를 다루는데에 있어서 중요한것은 3가지라고 할 수 있다.

 

1. 자료형(변수)

2. 조건문

3. 반복문

 

자료형은 여태 다뤘으니, 이번에는 조건문을 다루도록 한다.

 

조건문 중에서 if 함수를 이해하고, 사용법을 익혀보자.

 

 

 

 

 

개념 정리

 조건문은 말 그대로 조건이 충족하느냐? 못하느냐?

고 묻고, 충족하면 실행하는 명령이다.

 

 

 

조건문을 제대로 쓸 줄 알려면 연산자를 알아야 한다.

 

연산자 중에서 조건문에만 필요한 연산자를 다뤄보자.

이런 연산이 조건문에 사용된다.

 

솔직히 기초니깐 마지막 비트 논리 연산자는 굳이 지금 알 필요 없다.

 

 

 

연산자 의 구조를 보면 다음과 같다.

(관계, 논리, 조건) 연산자는 1 또는 0의 결과를 내 놓는다.

 

 

if(조건) 의 경우

조건이 참이면, 해당 조건문을 실행하는 것이다.

 

 

 

 

관계 연산자를 먼저 짚어보자.

 

단순히 변수의 크기를 비교하는 것이 관계 연산자 이다.

 

변수 a 에 1 을 저장하고, 변수 b 에 3 을 저장한다.

 

a > b 의 결과는 'False' 또는 '0' 이다.

- a 가 b 보다 크냐고 물었고, 그에 대한 대답은 '거짓' 이다.

 

a < b 의 결과는 'True' 또는 '1' 이다.

- a 가 b 보다 작냐고 물었고, 그에 대한 대답은 '참' 이다.

 

a == b 의 결과는 'False' 또는 '0' 이다.

- a 가 b 와 같냐고 물었고, 그에 대한 대답은 '거짓' 이다.

 

a != b 의 결과는 'True' 또는 '1' 이다.

- a 가 b 와 같지 않냐고 물었고, 그에 대한 대답은 '참'이다.

 

 a >= b  의 결과는 'False' 또는 '0' 이다.

- a 가 b 보다 크거나 같냐고 물었고, 그에 대한 대답은 '거짓' 이다.

 

 a <= b  의 결과는 'True' 또는 '1' 이다.

- a 가 b 보다 작거나 같냐고 물었고, 그에 대한 대답은 '참' 이다.

 

 

관계 연산자에서는 수학적인 개념이 들어가서 이해하기가 쉽다.

 

문자열(char)을 사용한다면 == 또는 !=  만 사용 가능하다.

 

위의 조건들이 if ( 조건 ) 에 사용되었으면

 

참인 경우에만 조건문이 실행되는 것이다.

 

 

정리하면 위와 같다.

 

 

 

 

논리 연산자를 살펴보자.

 

'논리' 라는 단어를 이해해야 한다.

 

쉽게 생각하면 0 과 1 로 이루어진게 '논리' 이다.

 

and 연산자( && ), or 연산자( || ) 이 두가지를 알면 되고,

 

not 연산자( ! ) 는 그냥 보고 넘기면 된다. 필자도 사용해본적 없다.

(자주 쓰이는 연산자가 아니라는 것...)

 

and 연산자는 둘 다 참일 경우에만 '' 이고, 그 외에는 다 '거짓' 이다.

 

or 연산자는 둘 중 하나라도 참이면 '' 이고, 둘 다 거짓이면 '거짓' 이다.

 

not 연산자는 그냥 반대 연산이다. 참일 경우 '거짓'으로, 거짓일 경우 '' 으로 값을 반환한다.

 

 

and 와 or은 중복해서 여러개 동시에 사용해도 괜찮다.

 

그리고 이런 논리 연산자는 관계 연산자의 결과를 주로 이용한다.

 

 

 

 

 

조건 연산자에 대해서 다뤄보자.

 

조건 연산자는 필자는 가독성이 떨어지는 이유로 잘 사용은 안한다.

 

여태 다른 코딩들을 보더라도 조건 연산자를 쓰는 경우를 못 봤다...

 

개념만 알고 가자, 매우 간단하니깐.

 

(조건식) ? ( ) : ( )    

 

콜론 ( : ) 을 기점으로 조건식이 참이면 왼쪽 값을, 거짓이면 우측 값을 취한다.

 

 

1. ( 조건식 ) ?  (좌코드) : (우코드)

- 조건식이 이면 (좌코드) 실행, 거짓이면 (우코드) 실행

 

2. 변수 = ( 조건식 ) ? (좌데이터) : (우데이터)

- 조건식이 이면 (좌테이터) 저장, 거짓이면 (우데이터) 저장

 

 

 

조건 연산자는 사실 if 문 안의 조건으로 사용하지는 않으므로 여기 까지 하고 넘어가도록 한다.

 

 

 

 

 

 

 

 

 

 

 

코드

#include <stdio.h>

void main()
{
	int a = 1;
	int b = 5;
	int c = 4;

	if (a > b)
	{
		printf("  a > b 가 참이다.\n\n");
	}
	if (b > a)
	{
		printf("  b > a 가 참이다.\n\n");
	}
	if (b == a)
	{
		printf("  b == a 가 참이다.\n\n");
	}
	if (b == (a+c))
	{
		printf("  b == (a+c) 가 참이다.\n\n");
	}
	if ((a < b) && (b > c))
	{
		printf("  (a < b) && (b > c) 가 참이다.\n\n");
	}
	if ((a < b) && (b < c))
	{
		printf("  (a < b) && (b > c) 가 참이다.\n\n");
	}
	if ((a < b) || (b < c))
	{
		printf("  (a < b) || (b < c) 가 참이다.\n\n");
	}


	return;
}


 

 

코드를 그대로 실행해도 좋다.

 

 

 

 

 

 

실행 결과

 

 

 

 

해석

조건문 if 안의 조건이 거짓이면

해당 코드는 실행되지 않고, 참인 것만 실행됨을 알 수 있다.

 

 

관계 연산자는 앞에서도 말했지만,

 

수학 계산식처럼 사용해도 된다.

 

우선 연산 하고 싶은 결과를 괄호를 쳐주면 된다.

 

 

논리 연산자의 경우 

 

&& (and) 연산의 경우 조건 두 개가 모두 참이여야 코드가 실행되고,

 

하나라도 거짓이 섞여있으면 실행이 되지 않는다.

 

|| (or) 연산의 경우 조건 하나라도 참이면 코드가 실행된다.

 

 

 

 

 

 

결론

 조건문 if를 사용하기 위해서는 조건을 다룰 줄 알아야 한다.

 

조건에는 관계 연산자, 논리 연산자를 사용할 수 있다.

 

논리 연산자를 이용해서 조건을 경우에 맞게 나눌 수 있다.

 

 

 

 

 

 

 

도움이 되었거나, 문제가 있는 경우 댓글로 알려주세요~!

감사의 댓글은 작성자에게 큰 힘이 됩니다 ^^

댓글