Switch 문에서 "오류: Jump to Case Label" 진단
Switch 문을 활용하는 프로그램을 컴파일할 때 사용자에게 오류가 발생할 수 있습니다. '오류: 케이스 라벨로 이동합니다.' 이 오류는 일반적으로 스위치 케이스 블록 내에서 변수 선언이 잘못되었기 때문에 발생합니다.
스위치 케이스의 변수 범위 이해
스위치 케이스 블록 내에서 선언된 변수는 후속 케이스에서도 계속 액세스할 수 있습니다. 명시적으로 초기화되지 않은 경우에도 블록입니다. 변수가 해당 케이스 블록에서 제대로 초기화되지 않은 경우 이 동작으로 인해 예상치 못한 결과가 발생할 수 있습니다.
변수 범위 문제의 예
다음 코드 조각을 고려하세요. 한 케이스 블록에서 선언된 변수를 후속 케이스 블록에서 사용하려고 합니다:
<code class="cpp">#include <iostream> int main() { int choice; std::cin >> choice; switch (choice) { case 1: int i = 0; break; case 2: // Error occurs here } }</code>
이 코드에서는 i 변수가 케이스 1 블록 내에서 선언되고 초기화됩니다. 그러나 선택 사항이 2인 경우 컴파일러는 케이스 2 블록 내의 i 변수에 액세스하려고 시도하지만 초기화되지는 않습니다. 이로 인해 "케이스 레이블로 이동" 오류가 발생합니다.
해결책: 스위치 케이스 내에서 블록 범위 지정 사용
이 문제를 해결하려면 각 스위치 케이스 블록을 묶어야 합니다. 명시적인 중괄호 블록({}) 내에서. 이는 특정 케이스 블록 내에서 선언된 모든 변수의 범위를 해당 블록으로 제한하여 후속 케이스 블록의 액세스를 방지합니다.
<code class="cpp">#include <iostream> int main() { int choice; std::cin >> choice; switch (choice) { case 1: { int i = 0; break; } case 2: int j = 10; break; } }</code>
블록 범위 지정을 사용하면 i 변수가 내에서만 액세스 및 초기화되도록 할 수 있습니다. 케이스 1 블록, j 변수는 케이스 2 블록 내에서만 액세스하고 초기화할 수 있습니다. 이렇게 하면 switch 문 내에 적절하고 예측 가능한 변수 범위가 생성됩니다.
switch 문의 변수 범위 동작을 이해하고 블록 범위 지정을 적절하게 사용하면 "Jump to Case Label" 오류를 방지하고 올바른 초기화를 보장할 수 있습니다. 그리고 변수의 사용법.
위 내용은 Switch 설명에 \'오류: 케이스 라벨로 이동\'이 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!