switch 문에서 Case 레이블로 이동
이 기사에서는 C++에서 switch
문의 사용에 대해 설명합니다. 또한 Jump to case label
오류를 포함하여 switch
문을 사용하는 동안 발생할 수 있는 오류에 대해 설명합니다.
C++의 switch
문
switch
문은 주어진 부울 또는 정수 표현식을 평가하고 주어진 표현식의 평가를 기반으로 cases
와 연관된 명령문을 실행합니다. 코드 길이를 줄이고 명확성을 향상시키므로 긴 if-else-if
문에 대한 최상의 대안입니다.
C/C++에서 평가를 수행하기 위해 switch
문에 다음 구문이 사용됩니다.
통사론:
switch (exp) {
case a:
// Block of code
break;
case b:
// Block of code
break;
default:
// Block of code
}
switch
문은 다음과 같은 방식으로 작동합니다.
- 표현식은
switch
문에서 한 번 평가됩니다. case
값은switch
값과 비교됩니다.case
문으로switch
표현식을 평가한 후 조건이 참이면 일치하는case
다음에 오는 코드 블록이 실행됩니다.break
및default
키워드는switch
문에서 선택 사항입니다. 이 자습서의 끝에서 이에 대해 자세히 설명합니다.
요일 숫자에서 요일 이름을 계산한다고 가정합니다.
예제 코드:
#include <iostream>
using namespace std;
int main() {
int weak_day = 3;
switch (weak_day) {
case 1:
cout << "Monday";
break;
case 2:
cout << "Tuesday";
break;
case 3:
cout << "Wednesday";
break;
case 4:
cout << "Thursday";
break;
case 5:
cout << "Friday";
break;
case 6:
cout << "Saturday";
break;
case 7:
cout << "Sunday";
break;
default:
cout << "Invalid input";
}
}
출력:
Wednesday
break
키워드
break
키워드는 주어진 case
가 충족된 후 switch
본문의 나머지 케이스를 건너뛰기 위해 switch
문과 함께 사용됩니다.
위의 예에서 switch
문이 평가되고 case 3
의 기준을 충족하면 break;
로 인해 switch
본문의 나머지 코드 블록을 건너뜁니다. 성명.
default
키워드
default
키워드는 switch
문과 함께 사용되어 지정된 switch
문에서 어떤 경우도 충족되지 않을 때 지정된 코드 블록을 실행합니다.
switch
문에서 default
키워드를 사용하는 방법을 보여주는 다음 예제를 살펴보겠습니다.
예제 코드:
#include <iostream>
using namespace std;
int main() {
int a = 4;
switch (a) {
case 6:
cout << "Value of a is 6";
break;
case 7:
cout << "Value of a is 7";
break;
default:
cout << "The number is other than 6 or 7";
}
}
출력:
The number is other than 6 or 7
이 예제에서는 정수 변수의 값을 4로 지정했지만 실행 중에 주어진 조건을 만족하는 경우는 없습니다. 따라서 default
블록이 실행됩니다.
C++의 switch
문에서 Jump to case label
오류 수정
switch
문을 사용하는 동안 발생할 수 있는 일반적인 오류는 Jump to case label
오류입니다. 일부 case
레이블 내/아래에서 선언이 이루어질 때 오류가 발생합니다.
문제를 이해하기 위해 다음 예를 살펴보겠습니다.
#include <iostream>
using namespace std;
int main() {
int a = 1;
switch (a) {
case 1:
int i = 66;
cout << i;
break;
case 2:
cout << i * 3;
break;
default:
cout << "Looking forward to the Weekend";
}
return 0;
}
위의 예에서 case 1:
에서 i=66
을 초기화하고 코드를 실행하면 됩니다. 이 코드는 i
값이 다른 경우에 표시되므로 Jump to case label
오류를 생성합니다.
case
는 레이블일 뿐이므로 옆에 작성되는 코드의 범위를 제한하지 않습니다. 따라서 실행 중에 case 2
가 실행되면 i
는 초기화되지 않은 변수가 됩니다.
따라서 C++와 같은 강력한 형식의 언어에서는 이러한 일이 발생하지 않습니다. 따라서 컴파일 타임 오류가 발생합니다.
case 1
내의 범위 구분 기호 {}
는 이 범위 문제를 극복하고 오류 없이 코드를 실행하는 데 도움이 됩니다.
#include <iostream>
using namespace std;
int main() {
int a = 1;
switch (a) {
case 1: {
int i = 66;
cout << i;
break;
}
case 2:
cout << "value does not exist";
break;
default:
cout << "Looking forward to the Weekend";
}
return 0;
}