If
if문은 If문은 조건식의 결과에 따라 중괄호 { } 로 묶어놓은 블록이 실행여부가 결정되는 조건문이다. 조건식에는 true 또는 false값을 산출할 수 있는 연산식이나 boolean변수가 올 수 있다. 조건식이 true면 블록을 실행하고 false면 블록을 실행하지 않는다. C언어에서 0은 false(거짓)로 0이 아닌 나머지 값은 모두 true(참)로 인식한다.
문법
if(조건식){ 실행문.... }
만약 조건식이 true가 될때 실행해야 할 문장이 하나밖에 없다면 중괄호 {}를 아래와 같이 생략 할수도 있다.
if(1) printf("if문 예제")[1]
연산자
if문 조건에는 연산자를 사용해서 조건을 검사해야 한다. 대표적으로 사용하는 연산자는 다음과 같다.
관계 연산자
관계 연산자란 두 값을 비교하여 결과에 따라 참 또는 거짓을 반환한다.
- 연산자에 따른 데이터 타입
- == : 같다
- != : 같지 않다
- < : 미만
- > : 초과
- <= : 이하
- >= : 이상
논리 연산자
논리 연산자란 참과 거짓을 연산하여 다시 참 또는 거짓을 반환한다.
- 연산자에 따른 기능
- ! : 식이 참이면 거짓, 거짓이면 참(NOT)
- && : 두 식이 모두 참이면 결과는 참, 한 식이라도 거짓이면 결과는 거짓(AND)
- || : 한식이라도 참이면 결과는 참(OR)[2]
예제
게임
예시로 게임으로 들어서 표현하자면 만약 사용자가 스페이스바를 눌렀다면 점프를 하게 하고 점프 중에는 점프가 되지 않게 해야된다고 가정했을때 코드는 다음과 같다. if(캐릭터가 점프 중이 아닐때) { 캐릭터 점프를 동작시킨다. }
게임을 제작하는 엔진이나 환경마다 다 다르기 때문에 전형적인 알고리즘을 구현한 코드이다. 이러한 알고리즘으로 대부분의 게임들이 if조건문을 사용하여 구현되는데 여기서 한발 더 나아가 예외처리도 해주어야 한다. 코드로 예시를 들자면 다음과 같다.
else(현재 점프 중일때) { 캐릭터 점프를 동작시키지 않는다. }
캐릭터가 점프 중이면 점프를 동작시키면 안되기 때문에 else if를 사용하여 동작을 차단시킨 코드이다. 이러한 식으로 else를 사용하여 예외처리가 가능하다.[3]
단점
if문의 단점은 다음과 같다.
- 변경,확장이 될 수록 코드가 복잡해져서 수정할 위치를 찾기가 어렵다.
- 실수로 추가하지 않고 누락하는 경우가 생긴다.
즉 유지보수가 점점 어려워진다.[4]
각주
- ↑ 〈[C언어 If문 사용법 & 예제 총정리]〉, 《코딩팩토리》, 2019-07-21
- ↑ 이재윤, 〈C언어 1 - 관계와 논리 연산자 / if 조건문〉, 《네이버블로그》, 2017-03-26
- ↑ 〈if문(조건문) 이해 예제 - C언어〉, 《티스토리》, 2016-09-10
- ↑ 〈if-else의 문제점〉, 《티스토리》, 2019-12-28