if 문을 이용한 조건 처리

여러 가지 조건에 따라 각기 다른 처리를 하고자 할 때 사용하는 if 문을 공부해볼게요.



강의들은 모두 무료입니다. 단, 저작권은 키클 코딩랩 에 있으며, 무단 복제 및 배포를 엄금합니다.
이를 어길 시, 본 사이트의 서버가 미국에 있으므로, 미국법에 의해 처벌될 수도 있습니다.




if 문

원하는 폴더/디렉토리를 만들고 gedit 문서 편집기를 이용하여 "lec13_if.c"라는 이름의 C 파일을 만들어 볼게요. 그리고, 아래처럼 표준입출력 라이브러리의 헤더파일을 포함시키고, main 함수의 골격을 만들어 보세요. 그 안에, 이전 강의 while 루프를 이용한 반복 처리에서 코딩한 while 루프를 그대로 복사해서 붙여넣으세요.

lec13_if.c
#include <stdio.h>

int main (int argc, char *argv[ ]) {
	int myvar = 0;
	while (myvar < 10) {
		printf("myvar: %d\n", myvar);
		myvar += 1;
	}
}

이제 몇 가지 조건이 있고, 그 조건들이 '참(true)'인지 '거짓(false)'인지 판단하여 각기 다른 처리를 하는 if 문을 공부해 볼게요. 실제 코딩할 때, if 문은 여러가지 경우에 따라 컴퓨터에게 다른 일을 하도록 시키기 위해서 많이 사용하는 기법이랍니다.

[문법] if 문

조건 처리를 위하여, if...else if...else...를 어떻게 사용해야 하는지 알겠지요?
그럼, 실제로 코딩해보고 프로그램을 실행해 볼까요? 앞서 만든 "lec13_if.c"에서, 줄6의 "printf("myvar: %d\n", myvar);"를 지우고, 그 자리에 아래의 줄6~줄14를 코딩하세요. if 문이 while 루프 안에 위치하게 되서, 루프가 돌아 반복 처리를 할 때마다 if 문을 실행하게 된답니다.

lec13_if.c
#include <stdio.h>

int main (int my_argc, char *my_argv[ ]) {
	int myvar = 0;
	while (myvar < 10) {
		if (myvar < 3) {
			printf("0 <= myvar: %d < 3\n", myvar);
		}
		else if (myvar < 6) {
			printf("3 <= myvar: %d < 6\n", myvar);
		}
		else {
			printf("6 <= myvar: %d\n", myvar);
		}
		
		myvar += 1;
	}
}

줄4에서는, while 루프의 조건에서 사용할 정수형 변수 myvar를 0으로 초기화하면서 선언하고 있지요.
줄5에서는 while 루프의 작성을 시작하고 있어요. 조건문은 "myvar가 10보다 작은가?"를 점검하는 "myvar < 10"이지요.
줄6~줄8에서는, if 부분을 작성하고 있지요. myvar의 값이 3보다 작은지를 확인하고 있어요. 만약, 조건이 참이라면, myvar가 0보다 크거나 같고 3보다 작다는 결과를 줄7에서 출력하고 있지요.
줄9~줄11에서는, else if 부분을 작성하고 있어요. if문의 조건이 거짓이 되면, else if 부분의 조건인 "myvar의 값이 6보다 작은지"를 확인하게 되지요. 만약, 이 조건이 참이라면, myvar가 3보다 크거나 같고 6보다 작다는 결과를 줄10에서 출력하게 되지요.
줄12~줄14에서는, else 부분을 작성하고 있어요. if문의 조건이 거짓이 되고, else if 부분의 조건도 거짓인 경우, myvar가 6보다 크거나 같다는 결과를 줄13에서 출력하게 되지요.
줄16에서는, 할당 연산자 +=를 이용하여, while 루프가 반복 처리를 할 때마다 myvar의 값을 1씩 증가시키고 있지요.
참고로, 우리가 코딩한 부분에서 main 함수의 전달인자인 my_argc나 my_argv를 사용한 적이 없기 때문에, 위 줄3에서 전달인자가 없는 main() 함수를 사용해도 상관없다는 것 기억해 두세요.





컴파일 후 실행하기

이제, 강의 첫 대면..main 함수에서 했던 것처럼, 파일을 저장하고 gedit 편집기 닫기를 하세요.
그리고, 아래처럼 컴파일 후 실행해 보세요. if문의 각 조건에 따라서 다를 출력이 된 것을 확인할 수 있답니다. myvar의 값이 10이 되면, while 루프의 조건을 만족시키지 못하기 때문에 "6 <= myvar: 9"가 출력된 후 while 루프를 빠져나오게 되지요.

.../my_folder$ gcc lec13_if.c
.../my_folder$ ./a.out
0 <= myvar: 0 < 3
0 <= myvar: 1 < 3
0 <= myvar: 2 < 3
3 <= myvar: 3 < 6
3 <= myvar: 4 < 6
3 <= myvar: 5 < 6
6 <= myvar: 6
6 <= myvar: 7
6 <= myvar: 8
6 <= myvar: 9
.../my_folder$

강의에서 작성된 소스 코드 (source code)를 다운받으려면, 다음 링크를 클릭하세요: lec13_if.c

혹시, 이해가 잘 안되는 부분에 대한 질문이 있거나 다루어 줬으면 하는 주제가 있으면, 화면 오른쪽 하단에 "질문하기" 버튼을 이용해 주세요.






발자취

2019-09-11 "키클 코딩랩 - 미국 공학박사 아빠의 코딩 연구소"로 이름 변경
2019-06-28 코딩 교실 공개
2019-03-18 코딩 교실 제작 시작

바로가기
Python 배움터
C/C++ 배움터
About
Contact
Privacy Policy
강의목록
질문하기
처음으로