본문 바로가기
개발/C, C++

[c/c++] if 문

by 77monkey 개발자 2023. 8. 14.
반응형

if문은 아마도 영어 공부를 하면서 처음 접했을 것이다. 
영어 뜻이 만약 ~라면, ~일 경우를 생각했는가?  맞다. 
내가 접한 언어에서는 모두 if가 존재했다. 
그래서 보통 한 언어를 잘하면 다른 언어를 접하기 쉽다고 하는 게 비슷한 부분이 많기 때문이다. 
다시 주제로 돌아서 if문에 대해서 알아보자.

if (조건문1) {
	동작1
} else if (조건문2) {
	동작2
} else {
	동작3
}

if 문을 처음 만나서 조건문1이 참이면 동작1이 실행되고, 
조건문1이 거짓이면 else if의 조건문2를 확인하게 된다. 
조건문2가 참이면 동작2가 실행되고, 
조건문2가 거짓이면 else로 가서 동작3가 실행된다.
위 내용만 보면 아직 감이 오지 않을 것 같아서 예를 들어보았다. 

#include <stdio.h>

int main() {

	int num = 1;

	if (num > 0) { //num이 양수인가?
		printf("num is %d\n", num); //양수이면 실행
	} else if (num < 0) { //num이 음수인가?
		printf("num is %d\n", num); //음수이면 실행
	} else { //두 경우가 모두 아닌가?
		printf("num is 0\n"); // 실행
	}

	return 0;
}

num이라고 변수를 하나 정의를 하고, 1을 설정했다. 이 경우에는 첫번째 조건문(if문)에 걸려서 num이 양수가 되어 아래와 같이 출력이다. 

num is 1

num을 -1로 변경한 경우는 어떻게 될까? 
우리는 직관적으로 else if문에 걸려서 "num is -1"을 출력할 것을 알지만, 
프로그램은 위에서부터 차례대로 코드를 타고 내려온다. 
첫번째 조건문(if문)에서 num과 0을 비교했는데 0보다 작기 때문에 거짓이 된다. 
그래서 두번째 조건문(else if)에서 num과 0을 비교했는데 0보다 작기 때문에 참이 되어서 우리가 예상했던 결과를 출력한다.

num is -1

num이 양수도 아니고 음수도 아니면 경우의 수는 하나이다. 바로 0.
그래서 else 구문을 통해서 아래와 같이 출력한다. 이 떄에는 변수 값이 딱 정해져 있기 때문에 변수를 출력하지 않았다.

num is 0

 
if문은 생각보다 많이 쓰인다.
잘 써서 도움이 되었기를 바란다.
 

반응형

'개발 > C, C++' 카테고리의 다른 글

[c/c++] for문 (2)  (1) 2023.08.16
[c/c++] for문  (0) 2023.08.16
[c/c++] 제어문 조건  (0) 2023.08.14
[c/c++] main 함수  (0) 2023.08.14
[c/c++] 전처리지시자  (0) 2023.08.10