

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

`switch` compara uma *condition-expression* com os rótulos literais, dentro de um conjunto de pares de rótulos literais e *return-expression*. Em seguida, retorna a *return-expression* correspondente ao primeiro rótulo literal igual à *condition-expression*. Se nenhum rótulo for igual à *condition-expression*, `switch` retornará a *default-expression*. Cada *return-expression* e *default-expression* devem ter o mesmo tipo de dados.

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

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

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

`switch` requer um ou mais pares de expressão *if*, *then* e exige exatamente uma expressão para o argumento *else*. 

 *condition-expression*   
A expressão a ser comparada com os literais do rótulo. Pode ser um nome de campo, como `address`, um valor literal, como '`Unknown`', ou outra função escalar, como `toString(salesAmount)`. 

 *rótulo*   
O literal a ser comparado com o argumento da *condition-expression*, todos os literais devem ter o mesmo tipo de dados do argumento da *condition-expression*. `switch` aceita até cinco mil rótulos. 

 *return-expression*   
A expressão a ser retornada se o valor de seu rótulo for igual ao valor da *condition-expression*. Pode ser um nome de campo, como `address`, um valor literal, como '`Unknown`', ou outra função escalar, como `toString(salesAmount)`. Todos os argumentos da *return-expression* devem ter o mesmo tipo de dados que a *default-expression*.

 *default-expression*   
A expressão a ser retornada se nenhum valor de nenhum argumento de rótulo for igual ao valor da *condition-expression*. Pode ser um nome de campo, como `address`, um valor literal, como '`Unknown`', ou outra função escalar, como `toString(salesAmount)`. A *default-expression* deve ter o mesmo tipo de dados que todos os argumentos da *return-expression*.

## Tipo de retorno
<a name="switch-function-return-type"></a>

`switch` retorna um valor do mesmo tipo de dados que os valores na *return-expression*. Todos os dados que retornam *return-expression* e *default-expression* devem ser do mesmo tipo de dados ou ser convertidos no mesmo tipo de dados. 

## Exemplos gerais
<a name="switch-function-example"></a>

O exemplo a seguir retorna o Região da AWS código do nome da região de entrada. 

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

A seguir estão os valores de campo especificados.

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

Para esses valores de campo, os valores a seguir são retornados.

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

## Use switch para substituir `ifelse`
<a name="switch-instead-of-ifelse"></a>

O caso de uso de `ifelse` a seguir é equivalente ao exemplo anterior, para `ifelse` avaliar se os valores de um campo são iguais a valores literais diferentes. Em vez disso, usar `switch` é uma opção melhor.

```
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")
```

## Expressão como valor de retorno
<a name="switch-expression-as-return-value"></a>

O exemplo abaixo usa expressões em *return-expressions*:

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

O exemplo anterior altera o tempo de atraso esperado para cada voo de uma cidade específica.

![\[Uma imagem dos resultados do exemplo de função, mostrada em forma de tabela.\]](http://docs.aws.amazon.com/pt_br/quick/latest/userguide/images/switch-function-example.png)
