· 조건문
* if
- x와 y의 크기를 비교해서 x가 y보다 큰지 작은지를 출력하는 프로그램을 만든다고 가정하자.
- x가 y보다 작을 경우 "x is less than y"를 출력해보자.
if (x < y)
{
printf("x is less than y\n");
}
- if 문으로 조건을 시작하고 괄호안에 조건을 적는다.
- 위는 x가 y보다 작으면 출력문이 실행되는 구조이다.
- 참고로 조건문의 끝에는 ;(세미콜론)을 굳이 붙이지 않는다. 세미콜론은 주로 함수의 끝에 넣는다.
* else
- 위를 좀더 보완하여보자. x가 y보다 작지 않으면 "x is not less than y"를 출력하자.
if (x < y)
{
printf("x is less than y\n");
}
else
{
printf("x is not less than y\n");
}
- 위는 if 조건이 부합하지 않으면 모두 else에서 처리를 하게되는 구조이다.
* else if
- 조건을 좀 더 세분화 해서 x가 y보다 큰지 작은지 같은지를 출력해보자.
if (x < y)
{
printf("x is less than y\n");
}
else if(x > y)
{
printf("x is not greater than y\n");
}
else if(x == y)
{
printf("x is equal to y\n");
}
- else if는 조건을 여러 개 생성하게 할 수 있는 구문이다.
- 이 때 조건에 특이한 것이 있는데, 바로 == 이다. 컴퓨터에서 =은 주로 할당연산자를 의미한다. 같다라는 조건을 표시할 때에는 == 을 사용한다. 참고로 ≠(다르다)는 != 이다.
* 개선
- 위의 마지막 코드는 개선할 필요가 있다.
- 가장 마지막 조건은 굳이 존재하지 않더라도 x가 y보다 크지도 작지도 않으면 같다는 것은 금방 알 수 있다. 따라서 다음과 같이 코드를 작성할 수 있다.
if (x < y)
{
printf("x is less than y\n");
}
else if(x > y)
{
printf("x is not greater than y\n");
}
else
{
printf("x is equal to y\n");
}
- 위와 같이 간결하게 만듦으로써 효율적인 코딩이 가능해지고 더 적은 메모리나 CPU를 사용할 수 있다.
참고
이 글은 하버드 대학교 David Malan 교수의 CS50 강의를 수강 후 정리하며 쓴 글입니다. 코드는 C언어로 작성되었으며, 개발환경은 CS50 Sandbox에 최적화되어 있습니다. 일부 라이브러리는 다른 환경에서 별도의 설정이 필요할 수 있습니다.
CS50 공식사이트
부스트코스
CS50 Sandbox
'Language > C' 카테고리의 다른 글
<C언어 기초> 06. 배열 (0) | 2021.01.27 |
---|---|
<C언어 기초> 05. 사용자 정의 함수 (0) | 2021.01.24 |
<C언어 기초> 04. 자료형과 연산자 (2) | 2021.01.23 |
<C언어 기초> 03. 루프 (0) | 2021.01.22 |
<C언어 기초> 01 출력과 문자열 (0) | 2021.01.20 |