조건문
조건문은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다.
C++에서 사용하는 대표적인 조건문에는 4가지가 있고, 가장 기본이 되는 명령문은 if문이다.
제어문에 속하는 명령문들을 중괄호({})로 둘러싸여 있으며, 이러한 중괄호 영역을 블록(block)이라고 한다.
--------------------------------------------------------------------------------------------------------------------------------
1. if 문
if 문은 조건식의 결과가 참(true)이면 주어진 명령문을 실행하며, 거짓(false)이면 아무것도 실행하지 않는다.
int main()
{
int num;
cin >> num;
if (num < 5)
{
cout << "입력하신 수는 5보다 작습니다!" << endl;
}
if (num == 5)
{
cout << "입력하신 수는 5입니다!" << endl;
}
if (num > 5)
cout << "입력하신 수는 5보다 큽니다!" << endl;
return 0;
}
위의 예제는 if 문을 3번 사용하여, 사용자가 입력한 수와 숫자 5를 비교하여 그 결괏값을 출력하는 예제이다.
※ 실행될 명령문이 한 줄 뿐이라면 중괄호({})를 생략할 수 있다.
--------------------------------------------------------------------------------------------------------------------------------
2. if / else 문
if 문과 함께 사용하는 else 문은 if 문과는 반대로 주어진 조건식의 결과가 거짓(false)이면 주어진 명령문을 실행한다.
int main()
{
int num;
cin >> num;
if (num < 5)
{
cout << "입력하신 수는 5보다 작습니다!" << endl;
}
else
{
if (num == 5)
{
cout << "입력하신 수는 5입니다!" << endl;
}
else
{
cout << "입력하신 수는 5보다 큽니다!" << endl;
}
}
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
3. if / else if / else 문
if / else if / else 문은 새로운 구문처럼 보이지만, 그냥 두 개의 if / else 문이 연달아 나온 것뿐이다.
이러한 if / else if / else 문은 조건식을 여러 개 사용할 수 있으므로 중첩된 if 문을 좀 더 간결하게 표현할 수 있다.
int main()
{
int num;
cin >> num;
if (num < 5)
{
cout << "입력하신 수는 5보다 작습니다!" << endl;
}
else if (num == 5)
{
cout << "입력하신 수는 5입니다!" << endl;
}
else
{
cout << "입력하신 수는 5보다 큽니다!" << endl;
}
return 0;
}
이때 else if 문은 여러 번 나와도 상관없지만, if 문과 else 문은 단 한 번만 나올 수 있다.
--------------------------------------------------------------------------------------------------------------------------------
4. switch - case 문
switch 문은 if / else 문과 마찬가지로 주어진 조건 값의 따라 다른 명령을 수행하도록 하는 조건문이다.
switch 문은 if / else 문보다 가독성이 더 좋다. 하지만 switch 문의 조건 값으로는 int형으로 승격할 수 있는 값만 사용될 수 있다.
int main()
{
int num;
cin >> num;
switch (num)
{
case 1:
cout << "입력하신 수는 1입니다." << endl;
break;
case 2:
cout << "입력하신 수는 2입니다." << endl;
break;
case 3:
cout << "입력하신 수는 3입니다." << endl;
break;
default:
cout << "1부터 3까지의 수만 입력해 주세요!" << endl;
break;
}
return 0;
}
default 절은 조건 값이 위에 나열된 어떠한 case 절에도 해당하지 않을 때만 실행된다.
default 절은 반드시 존재해야 하는 것은 아니고, 필요할 때만 선언해도 된다. 꼭 절의 위치가 switch 문의 맨 마지막일 필요는 없다.
각 case 절 및 default 절은 반드시 break 키워드를 포함하고 있어야 한다.
break 키워드는 조건 값에 해당하는 case나 default가 실행된 후에 전체 switch 문을 빠져나가게 해 준다.
만약에 break 키워드가 없다면, 조건에 해당하는 절 이후에 모든 case 절이 전부 실행된다.
int main()
{
char num;
cin >> num;
switch (num)
{
case 'a':
case 'A':
cout << "이 플레이어의 등급은 A입니다!" << endl;
break;
case 'b':
case 'B':
cout << "이 플레이어의 등급은 B입니다!" << endl;
break;
case 'c':
case 'C':
cout << "이 플레이어의 등급은 C입니다!" << endl;
break;
case 'd':
case 'D':
cout << "이 플레이어의 등급은 D입니다!" << endl;
break;
default:
cout << "등급을 정확히 입력해 주세요!(A, B, C, D)" << endl;
break;
}
return 0;
}
위의 예제는 조건 값으로 여러 개의 char형 문자를 검사하는 예제이다.
이렇게 switch 문의 조건으로 여러 개의 case 절을 사용하고, break를 적절히 사용하여 여러 개의 조건을 한 번에 검사할 수 있다.
※ 위의 예제들의 코드에서 블록에 속한 명령문은 중괄호({})를 기준으로 오른쪽으로 들여 쓰기가 되어 있는 것을 볼 수 있다. 이처럼 들여 쓰기를 통해 코드의 가독성을 높이는 것을 인덴트(indent)라고 하며, 될 수 있으면 모든 코드를 인덴트 하는 것이 좋다.
'📕Programming > 📝C/C++' 카테고리의 다른 글
[C / C++] 배열 (array) (0) | 2023.09.11 |
---|---|
[C / C++] 반복문 (0) | 2023.09.10 |
[C / C++] 문자 입출력 (0) | 2023.09.09 |
[C / C++] 연산자 (Operator) (0) | 2023.09.05 |
[C / C++] 자료형 (0) | 2023.09.05 |