>  기사  >  백엔드 개발  >  switch 문에서 Case 뒤의 값은 무엇이어야 합니까?

switch 문에서 Case 뒤의 값은 무엇이어야 합니까?

烟雨青岚
烟雨青岚원래의
2020-07-07 14:31:0619770검색

switch 문에서 Case 뒤의 값은 상수여야 합니다. 스위치 문에서는 케이스 라벨 뒤의 상수 값을 기반으로 점프 테이블이 생성되기 때문에 몇 번의 비교 후에 변수가 허용되면 해당 라벨로 점프할 수 있으며 스위치는 처음부터 끝까지만 수행할 수 있습니다. 데이터에 대한 비교는 의미를 잃습니다.

switch 문에서 Case 뒤의 값은 무엇이어야 합니까?

switch 문에서 Case 뒤의 값은 상수여야 합니다.

C 언어의 스위치는 if를 대체하지 않기 때문입니다.

스위치는 컴파일 중에 최적화되며, 케이스 라벨 뒤에 있는 상수 값을 기반으로 점프 테이블이 생성됩니다. 몇 번만 비교하면 해당 라벨로 이동할 수 있습니다.

따라서 라벨은 반복될 수 없습니다. 변수가 허용되면 스위치는 일련의 if else로만 변질될 수 있으며, 데이터는 처음부터 끝까지만 비교할 수 있으므로 스위치의 의미를 잃게 됩니다.

점프 테이블과 일대일 비교, 이 두 가지 방법의 복잡성은 매우 다릅니다.

이것은 Python이 C 언어에서 스위치 케이스에 해당하는 제어 구조를 도입하지 않는 이유 중 하나이기도 합니다.

일반 표현:

switch (表达式)
{
    case 常量表达式1:    语句1
    case 常量表达式2:    语句2
       ┇
    case 常量表达式n:    语句n
    default:        语句n+1
}

switch는 "스위치"를 의미하며 "선택" 문이기도 하지만 사용법은 매우 간단합니다. switch는 다중 분기 선택 문입니다. 간단히 말해서 여러 분기는 여러 if입니다.

기능적으로 말하면, switch 문과 if 문은 서로를 완전히 대체할 수 있습니다. 그러나 프로그래밍 관점에서 보면 각각 고유한 특성이 있기 때문에 아직까지 하나가 다른 하나를 완전히 대체할 수 있다고 말할 수는 없습니다.

중첩된 if가 상대적으로 적다면(3개 이내) if를 사용하여 프로그램을 작성하는 것이 더 간단합니다.

그러나 선택된 분기가 많으면 중첩된 if 문 수준이 많아져 프로그램이 길어지고 가독성이 떨어집니다.

그래서 C 언어는 여러 분기 선택을 처리하는 스위치 문을 제공합니다. 그래서 if와 switch는 분업이 명확하다고 할 수 있습니다. 많은 대규모 프로젝트에서는 다중 분기 선택 상황이 자주 발생하므로 스위치 문은 여전히 ​​자주 사용됩니다.

추천 튜토리얼: "C Language"

위 내용은 switch 문에서 Case 뒤의 값은 무엇이어야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.