728x90
제어문
제어문이란?
- 프로그램은 보통 물 흐르듯이 위에서 아래로 순차적으로 실행, 경우에 따라 특정 블록이 수행되거나 수행되지 않도록 해야 할 경우도 생김.
- 그럴 때 필요한 것이 제어문.
- 제어문은 프로그래머가 특정 문장을 건너뛰게도 하고 특정 문장을 반복 실행하게도 하면서 프로그램의 흐름을 조절하는 역할
제어문의 종류
구문 | 제어 명령 |
선택문 | if문 |
if~else문 | |
다중 if~else문 | |
switch문 | |
반복문 | for문 |
while문 | |
do~while문 | |
보조 제어문 | break문 |
continue문 |
이 게시물에서는 제어문 중에서 선택문에 대해 알아볼 예정이다.
if 문
if문이란?
- 주어진 조건을 만족하는 경우에만 특정 문장을 수행하도록 하는 제어문
- if문은 결과가 참 또는 거짓인 식을 if 다음의 괄호에 지정한다.
- 이 조건을 만족하는 경우에는 특정 문장을 수행하지만 이 조건을 만족하지 않으면 어떠한 문장도 수행하지 않는다.
- 따라서, if문은 특정 문장을 수행할 것인지의 여부를 결정할 때 주로 사용한다.
if문 기본 형식
[문장]
if (조건) {
조건에 만족하면 수행되는 문장;
}
[다음 문장]
- 조건에 만족할 문장을 {} 안에 기술하는 것이 보편적
- 조건에 만족할 경우 수행할 문장이 한 개일 경우 {}를 생략
- 수행할 문장이 2개 이상일 경우 {}는 필수적으로 기술
if문의 순서도
- 조건의 결과가 참이면 if문 바로 다음에 나오는 문장을 수행
- 조건의 결과가 거짓이면 이 문장을 수행하지 않고 바로 다음 문장을 수행
if~else문
if~else문이란?
- if문 계열 중 가장 많이 사용하는 형식
- 2가지 경우 중 한가지만 선택할 때 사용
- if문과 마찬가지로 조건에 만족할 때 처리할 문장이 하나일 경우에는 중괄호 생략
- 여러 문장을 수행해야할 경우 반드시 중괄호로 묶어주어야 함.
if-else문 기본 형식
[문장]
if(조건){
조건에 만족할 때 수행되는 문장;
}
else{
조건에 만족하지 않을 때 수행되는 문장;
}
[다음 문장]
- if~else문은 if문 이전 문장을 수행하다가 if문을 만나면 조건을 검사
if~else문의 순서도
- 조건의 결과가 참이면 if문 바로 다음에 나오는 {} 내부의 문장을 수행
- 조건의 결과가 거짓이면 else문 다음에 나오는 {} 내부의 문장을 수행
- 두 문장 중 하나가 수행된 후 다음 문장 수행
다중 if~else문
다중 if~else문이란?
- if~else문은 참, 거짓을 선택하는 과정에서 한 번만 사용
- 만일 그 경우의 수가 둘이 아닌 셋 이상에서 하나를 선택해야 할 경우에는 if~else문을 중첩해서 사용해야 한다.
다중 if~else문 기본 형식
[문장]
if(조건 1){
문장 1: 조건 1에 만족할 때 처리할 문장;
}
else if(조건 2){
문장 2: 조건 1에 만족하지 않지만 조건 2에 만족할 때 처리할 문장;
}
else if(조건 n){
문장 n: 조건 1부터 조건 n-1에 만족하지 않지만 조건 n에 만족할 때 처리할 문장;
}
else{
위에서 언급한 모든 조건에 대해서 만족하지 않을 때 처리할 문장;
}
[다음 문장]
- if문의 조건 1이 참이면 문장 1을 수행하고 if 문 밖의 다음 문장으로 실행
- 조건 1이 거짓일 경우 다음의 조건 2를 검사해서 참이면 문장 2를 수행하고 if문 밖의 다음 문장으로 실행
- 조건 2도 거짓이라면 그 다음 조건식인 조건 n을 검사해서 참이면 문장 n을 수행하고 if문 밖의 다음 문장으로 실행
- 언급한 모든 조건에 맞지 않으면 마지막 else 다음의 문장을 수행한 후 if문을 빠져나온다.
switch문
switch문이란?
- switch문은 다중 if~else문과 같은 용도로 쓰인다.
- 즉, 여러 조건 중 하나를 선택할 때 사용하는 다중 선택문
- 하지만 다중 if~else문과 switch문은 그 형태가 다르다.
- 다중 if~else문은 조건문을 검사해서 참이나 거짓의 결과로 문장을 수행.
- switch문은 참이나 거짓의 결과를 반환하는 논리식이 아닌 정수식에 따라 분기
switch문 기본 형식
문장 1;
switch <정수식> {
case 정수값1 : 문장2; break;
case 정수값2 : 문장3; break;
...
case 정수값n : 문장n+1; break;
...
default : 문장 m;
}
다음 문장;
- switch문은 <정수식>의 결과값과 case 다음의 정수값이 일치하는 것을 찾아서 해당되는 행의 문장을 수행
- case문의 정수값은 각각 달라야 함.
- case문의 정수값의 순서는 크기의 순서와 상관없이 임의의 순서로 나타내도 상관없다.
- switch 다음에 나오는 <정수식>에는 변수나 수식이 올 수 있으나, case 다음에 나오는 정수값에는 변수나 수식이 올 수 없다.
- switch문의 정수식과 일치하는 case문의 값이 없을 경우를 처리하기 위해서 default가 존재
- 그러나, switch문의 정수식과 일치하는 값이 없을 경우 아무런 처리도 하지 않는다면 default를 생략할 수도 있다.
- 또한, switch문에서 break를 생략할 수도 있다.
- 2가지 경우에 대해서 처리할 문장이 동일하다면 case 정수값1 : 다음에 아무런 문장을 기술하지 않고 break문도 생략한다.
'C++ > 이론' 카테고리의 다른 글
[C++] 보조 제어문 (break문, continue문) (0) | 2023.09.30 |
---|---|
[C++] 반복문 (for문, while문) (0) | 2023.09.29 |
[C++] 연산자 (0) | 2023.09.07 |
[C++] 자료형 (0) | 2023.09.06 |
[C++] C++의 기초 (0) | 2023.09.05 |