분기: if-else, 삼항 연산자, switch-case
명확한 분기를 위해 if-else 연쇄문, 삼항 표현식 및 switch 문 중 적절한 것을 선택합니다.
분기: if-else, 삼항 연산자, switch-case은(는) CoddyKit의 무료 C++ Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C++ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
if 문
가장 기본적인 조건문입니다. 조건이 참일 때 본문이 실행됩니다. 하나의 문장에는 중괄호를 생략할 수 있지만 항상 사용하는 것이 좋습니다.
int score = 85;
if (score >= 60) {
std::cout << "Pass\n";
}if-else 연쇄
else if와 마지막 else로 여러 경우를 검사하십시오. 처음으로 참이 되는 분기가 실행됩니다.
if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";불리언 조건
bool로 변환할 수 있는 모든 표현식을 사용할 수 있습니다. 포인터는 null일 때 거짓으로 평가되고, 정수는 0일 때 거짓으로 평가됩니다. 명확성을 위해 의도를 명시적으로 표현하십시오.
if에서 초기화하기 (C++17)
C++17에서는 if 내부에서 변수를 선언할 수 있습니다. 이 변수의 범위는 if-else 본문으로 제한됩니다.
if (auto it = map.find(key); it != map.end()) {
std::cout << it->second;
}삼항 연산자
condition ? a : b는 두 값 중 하나를 반환합니다. 간단한 선택에는 매우 유용하지만 중첩된 논리에는 적합하지 않습니다.
int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";중첩된 삼항 연산자는 피하기
중첩된 삼항 연산자는 읽기 어렵습니다. 대신 if-else를 사용하거나 도우미 함수로 분리하십시오.
// Hard to read
auto label = (n < 0) ? "neg" : (n == 0) ? "zero" : "pos";
// Clearer
std::string label;
if (n < 0) label = "neg";
else if (n == 0) label = "zero";
else label = "pos";switch 문
하나의 값을 여러 상수와 비교합니다. 다음 case로 이어지는 것을 방지하려면 각 분기에 break가 필요합니다.
switch (day) {
case 1: std::cout << "Mon"; break;
case 2: std::cout << "Tue"; break;
default: std::cout << "?"; break;
}의도적인 다음 case 실행
같은 코드를 공유하는 여러 case를 묶으십시오. C++17에는 컴파일러에 이를 표시하는 표식으로 [[fallthrough]]가 추가되었습니다.
switch (c) {
case 'a': case 'e': case 'i': case 'o': case 'u':
std::cout << "vowel"; break;
default:
std::cout << "consonant";
}switch의 제약 사항
switch는 정수형과 열거형 형식에서만 작동합니다. 문자열에는 if-else 또는 해시 맵을 사용하십시오.
switch에서 초기화하기 (C++17)
if와 마찬가지로 switch 헤더 내부에서 변수를 선언할 수 있습니다.
switch (auto value = compute(); value) {
case 0: ...
default: ...
}패턴: 조회 맵
문자열을 키로 사용하는 분기에는 if-else 연쇄보다 std::unordered_map이 더 깔끔할 수 있습니다.
std::unordered_map<std::string, std::function<void()>> commands = {
{"start", []{ start(); }},
{"stop", []{ stop(); }}
};
if (auto it = commands.find(cmd); it != commands.end())
it->second();빠른 확인
switch의 case에 break가 없고 다음 case가 비어 있지 않으면 어떻게 됩니까?
복습
일반적인 분기에는 if-else, 짧은 값 선택에는 삼항 연산자, 하나의 값을 여러 정수 상수와 비교할 때는 switch를 사용하십시오. C++17의 초기화 문은 변수의 범위를 깔끔하게 제한합니다.
자주 묻는 질문
“분기: if-else, 삼항 연산자, switch-case” 강의는 무료인가요?
네 — “분기: if-else, 삼항 연산자, switch-case” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C++ Academy 강의 전체를 잠금 해제할 수 있습니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“분기: if-else, 삼항 연산자, switch-case”에서 뭘 배우나요?
명확한 분기를 위해 if-else 연쇄문, 삼항 표현식 및 switch 문 중 적절한 것을 선택합니다. 브라우저에서 직접 실행하는 실습 코드로 C++ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C++ Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C++ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“분기: if-else, 삼항 연산자, switch-case” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C++ Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C++ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 분기: if-else, 삼항 연산자, switch-case
- 반복문 패턴: for, while, do-while
- 컨테이너와 범위 기반 for 반복문
- 조기 반환, break, continue 및 goto