Nagie's DevStory
[C] 15. 조건문 사용하기 본문
그림판으로 빠르게 그려본 조건문의 작동 방식이다.
프로그래밍도 전자회로처럼 코드의 흐름을 제어할 수 있다.
제어할 때 사용하는 구문은 아래와 같이 3가지가 있으며
조건문의 사용으로 코드를 좀 더 유연하게 작성할 수 있다.
첫 번째로 if ~ else 문의 사용법을 알아보겠다.
if(조건식) {
조건에 부합할때 동작할 코드;
} else {
조건에 부합하지 않을때 동작할 코드;
}
기본적으로 위와 같이 사용할 수 있으며
검사할 조건의 개수에 따라 else if()를 추가해 여러 가지 조건 검사를 할 수 있게 작성 할 수 있다.
else if를 사용한 예시는 아래와 같다.
if(조건식1) {
조건1에 부합할때 동작할 코드;
} else if(조건식2) {
조건2에 부합할때 동작할 코드;
} else {
조건에 부합하지 않을때 동작할 코드;
}
그 외에도 조건에 해당할 때 동작할 코드가 한 줄이라면 중괄호를 생략할 수도 있으나
때에 따라 독이 되는 경우가 있으니 웬만하면 그냥 한 줄이라도 중괄호를 쓰는 걸 추천한다.
두 번째로 switch ~ case문에 대해 알아보겠다.
switch (조건식) {
case 1:
조건1에 부합할때 동작할 코드;
break;
case 2:
조건2에 부합할때 동작할 코드;
break;
case 3:
조건3에 부합할때 동작할 코드;
break;
default:
위의 조건에 부합하는 조건이 없을때 동작할 코드;
break;
}
switch ~ case문은 if ~ else문보다 조금 복잡하게 느껴질 수 있다.
하나의 조건마다 break; 문을 넣어 해당 조건의 마지막을 알려줘야 하고
break; 문이 빠지게 되면 바로 다음 조건까지 실행이 돼서 까다롭다.
default: 구문은 필요에 따라 생략이 가능하며 if ~ else 문과의 차이점은
switch ~ case 문은 주로 상수나 열거형으로 조건 검사를 많이 하므로 정적이며
if ~ else처럼 임의의 조건을 검사할 수가 없다.
그렇지만 switch ~ case는 조금 더 CPU 친화적이라 퍼포먼스 측에서 이득을 볼 수 있다.
<이는 개발 목표로 하는 플랫폼과 언어에 따라 퍼포먼스 이슈가 없을 수도 있고 유의미한 차이가 있을 수 있기에 참고 바란다.>
마지막으로 삼항 연산자에 대해서 알아보자.
(조건식) ? (참) : (거짓) ;
주로 사용하는 상황은 true나 false로 값을 받아야 하는데
if ~ else 문이나 switch ~ case 문을 쓰기엔 코드 가독성이 너무 떨어지거나 불필요하게 코드를 늘리기 싫을 때 사용한다.
예를 들어 아래와 같은 상황일 때 사용할 수 있겠다.
// if ~ else문
bool isTrue = false;
if(A < B) {
isTrue = true;
} else {
isTrue = false;
}
//삼항 연산자
bool isTrue = (A < B) ? true : false ;
3가지의 조건문을 알아봤다.
대다수의 상황에선 if ~ else 문이 유지보수나 가독성 면에서 좋긴 하겠지만
특수한 상황일 땐 유동적으로 switch ~ case나 삼항 연산자를 쓰도록 하자.