

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# switch
<a name="switch-function"></a>

`switch`은(는) 리터럴 레이블 및 반환-표현식 쌍 세트 내에서 조건식과 리터럴 레이블을 비교합니다. 그런 다음 조건 표현식과 동일한 첫 번째 리터럴 레이블에 해당하는 반환 표현식을 반환합니다. 조건 표현식과 동일한 레이블이 없는 경우 `switch`은(는) 기본 표현식을 반환합니다. 모든 반환 표현식과 기본 표현식은 동일한 데이터 유형을 가져야 합니다.

## 구문
<a name="switch-function-syntax"></a>

```
switch(condition-expression, label-1, return-expression-1 [, label-n, return-expression-n ...], 
        default-expression)
```

## 인수
<a name="switch-function-arguments"></a>

`switch`은(는) 한 개 이상의 if, then 표현식 쌍 한 개 이상과 else 인수 표현식에 대한 단 한 개의 표현식을 요구합니다.

 조건 표현식   
레이블 리터럴과 비교되는 표현식입니다. 이것은 `address`와(과) 같은 필드 이름, `Unknown`와(과) 같은 리터럴 값 또는 `toString(salesAmount)`와(과) 같은 또 다른 스칼라 함수일 수 있습니다.

 라벨   
리터럴을 조건 표현식 인수와 비교할 때 모든 리터럴은 조건 표현식 인수와 동일한 데이터 유형을 가져야 합니다.`switch`에서 최대 5000개의 레이블을 허용합니다.

 반환 표현식   
레이블 값이 조건 표현식의 값과 같은 경우 반환되는 표현식입니다. 이것은 `address`와(과) 같은 필드 이름, `Unknown`와(과) 같은 리터럴 값 또는 `toString(salesAmount)`와(과) 같은 또 다른 스칼라 함수일 수 있습니다. 모든 반환 표현식 인수는 기본 표현식과 동일한 데이터 유형을 가져야 합니다.

 기본 표현식   
조건 표현식 값과 동일한 레이블 인수 값이 없는 경우 반환되는 표현식입니다. 이것은 `address`와(과) 같은 필드 이름, `Unknown`와(과) 같은 리터럴 값 또는 `toString(salesAmount)`와(과) 같은 또 다른 스칼라 함수일 수 있습니다. 기본 표현식의 데이터 유형은 모든 반환 표현식 인수와 동일해야 합니다.

## 반환 타입
<a name="switch-function-return-type"></a>

`switch`은(는) 반환 표현식의 값과 동일한 데이터 유형의 값을 반환합니다. 반환되는 모든 데이터는 반환 표현식과 기본 표현식이 동일한 데이터 유형이거나 동일한 데이터 유형으로 변환되어야 합니다.

## 일반 예제
<a name="switch-function-example"></a>

다음 예제에서는 입력 리전 이름의 AWS 리전 코드를 반환합니다.

```
switch(region_name, 
               "US East (N. Virginia)", "us-east-1", 
               "Europe (Ireland)", "eu-west-1", 
               "US West (N. California)", "us-west-1", 
               "other regions")
```

다음은 주어진 필드 값의 예입니다.

```
"US East (N. Virginia)"
        "US West (N. California)"
        "Asia Pacific (Tokyo)"
```

이러한 필드 값의 경우 다음 값이 반환됩니다.

```
"us-east-1"
        "us-west-1"
        "other regions"
```

## 스위치를 사용하여 `ifelse` 변경
<a name="switch-instead-of-ifelse"></a>

다음 `ifelse` 사용 사례는 이전 예제와 동일합니다. `ifelse`은(는) 한 필드의 값이 다른 리터럴 값과 같은지 여부를 평가하는 경우에는 대신 `switch`을(를) 사용하는 것이 좋습니다.

```
ifelse(region_name = "US East (N. Virginia)", "us-east-1", 
               region_name = "Europe (Ireland)", "eu-west-1", 
               region_name = "US West (N. California)", "us-west-1", 
               "other regions")
```

## 반환값으로서의 표현식
<a name="switch-expression-as-return-value"></a>

다음 예제에서는 반환 표현식에 표현식을 사용합니다.

```
switch({origin_city_name}, 
               "Albany, NY", {arr_delay} + 20, 
               "Alexandria, LA", {arr_delay} - 10,
               "New York, NY", {arr_delay} * 2, 
               {arr_delay})
```

위 예시에서는 특정 도시에서 출발하는 각 항공편의 예상 지연 시간을 변경합니다.

![\[함수 예제의 결과 이미지로, 표 형식으로 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/quick/latest/userguide/images/switch-function-example.png)
