happy coding
[c] 조건문 본문
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 / else 문
if문과 함께 사용하는 else 문은 if 문과는 반대로 주어진 조건식의 결과가 거짓이면 주어진 명령문을 실행한다.
if ( 조건식 )
{
조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}
if / else if / else 문
else if 문은 if 문처럼 조건식을 가질 수 있기 때문에 중첩된 if 문을 좀 더 간결하게 표현할 수 있도록 해준다. 하나의 조건문 안에서 if 문과 else 문은 단 한 번만 사용될 수 있다. 하지만 else if 문은 여러 번 사용될 수 있어서 복잡한 조건도 표현할 수 있다.
if(조건식1)
{
조건식1의 결과가 참인 경우 실행하고자 하는 명령문;
}
else if(조건식2)
{
조건식2의 결과가 참인 경우 실행하고자 하는 명령문;
}
else
{
조건식1과 조건식2의 결과가 모두 거짓인 경우 실행하고자 하는 명령문;
}
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 |