비교 차트
비교의 근거 | 다른 경우라면 | 스위치 |
---|---|---|
기본 | 어떤 명령문은 if 문 내부의 표현식 출력에 따라 실행됩니다. | 실행되는 명령문은 사용자가 결정합니다. |
표현 | if-else 문은 다중 선택을 위해 다중 명령문을 사용합니다. | switch 문은 여러 선택 항목에 대해 단일 표현식을 사용합니다. |
테스트 | if-else 문은 논리적 표현뿐만 아니라 동등 함을 테스트합니다. | 스위치 테스트 문은 동등 함만을 테스트합니다. |
평가 | if 문이 정수, 문자, 포인터 또는 부동 소수점 유형 또는 부울 유형을 평가합니다. | switch 문은 문자 또는 정수 값만 평가합니다. |
실행 순서 | 명령문이 실행되거나 명령문이 실행되는 경우. | switch 문은 break 문이 나타날 때까지 또는 switch 문 끝에 도달 할 때까지 하나의 case를 실행합니다. |
기본 실행 | if 문 내부의 조건이 false이면 기본적으로 else 문이 작성되면 실행됩니다. | switch 문 내부의 조건이 어떤 경우와도 일치하지 않으면, 해당 인스턴스에 대해 작성된 경우 기본 명령문이 실행됩니다. |
편집 중 | 중첩 된 if-else 문이 사용되는 경우 if-else 문을 편집하기가 어렵습니다. | 스위치 케이스를 쉽게 편집 할 수 있으므로 쉽게 인식 할 수 있습니다. |
if-else의 정의
if-else 문은 OOP의 선택 문에 속합니다. if-else 문의 일반적인 형식은 다음과 같습니다.
if (expression) {statement (s)} else {statement (s)}
여기서 "if"및 "else"는 키워드이고 명령문은 단일 명령문 또는 명령문 블록이 될 수 있습니다. 표현식은 0이 아닌 값에 대해 "참"으로 평가되고 0의 경우 "거짓"으로 평가됩니다.
if 문의 표현식은 정수, 문자, 포인터, 부동 소수점을 포함 할 수 있으며 부울 유형일 수 있습니다. else 문은 if-else 문에서 선택적입니다. 표현식이 true를 반환하면 if 문 내부의 문이 실행되고 false를 반환하면 else 문 내부의 문이 실행되고 else 문이 작성되지 않은 경우 아무런 작업도 수행되지 않고 프로그램 제어가 실행됩니다 if-else 문을
한 가지 예를 통해 우리가 이해할 수있게하십시오.
int i = 45, j = 34; if (i == 45 & j == 34) {cout << "나는 어두운 choclate를 선택한다"; 단절; case 2 : cout << "당신은 사탕을 선택합니다"; 단절; 케이스 3 : cout << "너는 사탕을 선택한다"; 단절; . . 기본 cout << "당신은 아무것도 선택하지 않습니다"; }
여기서 "i"의 값은 어떤 경우가 실행될지를 결정합니다. 사용자가 1, 2 또는 3 이외의 "i"값을 제공하면 기본 사례가 실행됩니다.
if-else와 switch의 주요 차이점
- if 문 내부의 표현식은 블록 내부 또는 외부에서 블록을 실행할지 여부를 결정합니다. 반면에 switch 문 내부의 표현식은 실행할 사례를 결정합니다.
- 다중 선택 문에 대해 여러 개의 if 문을 가질 수 있습니다. 스위치에는 여러 선택 항목에 대해 하나의 표현식 만 있습니다.
- If-esle 문은 논리적 표현뿐만 아니라 동등성을 검사합니다. 반면에 스위치는 동등성 만 검사합니다.
- if 문은 정수, 문자, 포인터 또는 부동 소수점 유형 또는 부울 유형을 평가합니다. 반면 switch 문은 문자 또는 정수 데이터 유형 만 평가합니다.
- 실행 순서는 블록이 실행될 경우 명령문과 같거나 else 블록 명령문 아래의 명령문이 실행됩니다. 반면 switch 문에있는 표현식은 어떤 경우를 실행할지를 결정하고 각 case마다 break 문을 적용하지 않으면 switch 문이 끝날 때까지 실행됩니다.
- if 내부가 거짓 인 경우 else 블록 내의 statement가 실행됩니다. switch 문 내부의 expression이 false가되면 default 문이 실행됩니다.
- if-else 문은 수정이 필요한 곳을 추적하기가 번거롭기 때문에 편집하기가 어렵습니다. 반면에 switch 문을 쉽게 편집 할 수 있으므로 쉽게 추적 할 수 있습니다.
결론:
switch 문은 다른 명령문에 대해 별도의 사례를 작성 했으므로 편집하기 쉽습니다. 반면에 중첩 된 if-else 문에서는 편집 할 명령문을 식별하기가 어려워집니다.