happy coding

[c] 조건문 본문

self study/언어의 기본부터

[c] 조건문

yeoonii 2022. 11. 18. 15:52
TCP school을 보고 정리한 내용입니다. 

제어문(control flow statements)

C 프로그램에는 절차적 프로그램(procedural program) 또는 명령형 프로그램(Imperative program)에 속하며, 많은 명령문이 포함되어 있고 이 명령문은 처음부터 끝까지 순서대로 실행된다. 따라서 원하는 결과를 얻기 위해 프로그램의 이러한 순차적인 흐름을 제어해야만 한다. 이때 사용하는 명령문을 제어문이라고 한다. 제어문에는 조건문, 반복문 등이 있는데, 제어문에 속하는 명령문들은 중괄호{}로 둘러싸여 있으며, 그 영역을 블록(block)이라고 한다.

조건문(conditional statements)

조건문은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다. C언어에서 사용하는 대표적인 조건문의 형태는 1. if문 2. if/else문 3. if/else if/els문 4. switch문

if 문

if 문은 조건식의 결과가 참이면 주어진 명령문을 실행하며, 거짓이면 아무것도 실행하지 않는다. 

if (조건식)
{
	조건식의 결과가 참일 때 실행하고자 하는 명령문;
}

위의 코드에서 블록에 속한 명령문은 중괄호{}를 기준으로 오른쪽으로 들여쓰기가 되어있는데, 이 방법을 통해 코드의 가독성을 높이는 것을 인덴터(indent)라고 하며, 될 수 있으면 모든 코드를 인덴트하는 것이 좋다고 한다. 하지만 명령문이 한 줄 뿐이라면 중괄호를 생략해도 괜찮다.

if 문을 순서도로 표현한 그림

if / else 문

if문과 함께 사용하는 else 문은 if 문과는 반대로 주어진 조건식의 결과가 거짓이면 주어진 명령문을 실행한다.

if ( 조건식 )
{
	조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
	조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}

if / else 문을 순서도로 표현한 그림

if / else if / else 문

else if 문은 if 문처럼 조건식을 가질 수 있기 때문에 중첩된 if 문을 좀 더 간결하게 표현할 수 있도록 해준다. 하나의 조건문 안에서 if 문과 else 문은 단 한 번만 사용될 수 있다. 하지만 else if 문은 여러 번 사용될 수 있어서 복잡한 조건도 표현할 수 있다.

if(조건식1)
{
	조건식1의 결과가 참인 경우 실행하고자 하는 명령문;
}
else if(조건식2)
{
	조건식2의 결과가 참인 경우 실행하고자 하는 명령문;
}
else
{
	조건식1과 조건식2의 결과가 모두 거짓인 경우 실행하고자 하는 명령문;
}

if / else if / else 문을 순서도로 표현한 그림

switch 문

switch 문은 if / else 문과 마찬가지로 주어진 조건 값의 결과에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문이다. 이러한 switch 문은 if / else 문보다 가독성이 좋고, 컴파일러가 최적화를 쉽게 할 수 있어 속도 또한 빠르다.

하지만 switch 문의 조건 값으로는 int형으로 승격할 수 있는(integer promotion)값만이 사용될 수 있기 때문에 사용할 수 있는 상황이 적다.

switch (조건값)
{
	case 값1 :
    	조건 값이 값1일 때 실행하고자 하는 명령문;
        break;
    case 값2 :
    	조건 값이 값2일 때 실행하고자 하는 명령문;
        break;
    ...
    default:
    	조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;
        break;
}

default 절은 반드시 존재해야하는 것은 아니고, 필요할 때에만 선언할 수 있으며 반드시 switch 문의 맨 마지막에 위치할 필요 또한 없다.

각 case 절 및 default 절은 반드시 조건 값에 해당하는 case 절이나 default 절이 실행된 뒤 전체 switch 문을 빠져나가게 해주는 break 키워드를 포함하고 있어야 한다. 만약 그 키워드가 없다면, 조건에 해당하는 switch 문의 case 절 이후의 모든 case 절이 전부 실행되기 때문이다.

'self study > 언어의 기본부터' 카테고리의 다른 글

[c] 기타 제어문  (0) 2022.11.18
[c] 반복문  (0) 2022.11.18
[c] 연산자  (0) 2022.11.17
[c] 타입 변환  (0) 2022.11.16
[c] 변수와 상수  (0) 2022.11.15
Comments