

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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` は、1 つ以上の *if*、*then* 式のペアと、1 つの正確な *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/ja_jp/quick/latest/userguide/images/switch-function-example.png)
