Nagie's DevStory

[C] 15. 조건문 사용하기 본문

Programming/C

[C] 15. 조건문 사용하기

Nagie 2023. 9. 5. 22:21
728x90

그림판으로 빠르게 그려본 조건문의 작동 방식이다.

 

프로그래밍도 전자회로처럼 코드의 흐름을 제어할 수 있다.

 

제어할 때 사용하는 구문은 아래와 같이 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나 삼항 연산자를 쓰도록 하자.

728x90
Comments