본문 목표
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를 사용하기 위해서는 조건을 다룰 줄 알아야 한다.
조건에는 관계 연산자, 논리 연산자를 사용할 수 있다.
논리 연산자를 이용해서 조건을 경우에 맞게 나눌 수 있다.
도움이 되었거나, 문제가 있는 경우 댓글로 알려주세요~!
감사의 댓글은 작성자에게 큰 힘이 됩니다 ^^
'코딩 > C 언어' 카테고리의 다른 글
C언어 기초 - 반복문 while 이해하기 (0) | 2020.07.05 |
---|---|
C언어 기초 - 조건문 if , else if, else 이해하기 (2) | 2020.07.05 |
C언어 기초 - 지역변수와 전역변수 이해하기 (0) | 2020.07.05 |
C언어 기초 - 기본 자료형 정리 (0) | 2020.07.05 |
C언어 기초 - printf 로 숫자 출력하기 (0) | 2020.07.05 |
댓글