

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

`switch` compare une *expression-condition* avec les étiquettes littérales, dans un ensemble de paires d’étiquettes littérales et de *return-expression*. Il renvoie ensuite l’expression *return-expression* correspondant à la première étiquette littérale qui est égale à l’expression *condition-expression*. Si aucune étiquette n’est égale à l’expression *condition-expression*, `switch` renvoie l’expression *default-expression*. Chaque *return-expression* et *default-expression* doit avoir le même type de données.

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

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

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

L’opérateur `switch` nécessite une ou plusieurs paires d’expressions *if*,*then* et requiert exactement une expression pour l’argument *else*. 

 *condition-expression*   
L’expression à comparer avec l’étiquette-littérale. Il peut s’agir d’un nom de champ comme `address`, d’une valeur littérale comme « `Unknown` » ou d’une autre fonction scalaire comme `toString(salesAmount)`. 

 *étiquette*   
Le littéral à comparer avec l’argument de *condition-expression*, tous les littéraux doivent avoir le même type de données que l’argument de *condition-expression*. L’expression `switch` accepte jusqu’à 5000 étiquettes. 

 *return-expression*   
L’expression à retourner si la valeur de son étiquette est égale à la valeur de *condition-expression*. Il peut s’agir d’un nom de champ comme `address`, d’une valeur littérale comme « `Unknown` » ou d’une autre fonction scalaire comme `toString(salesAmount)`. Tous les arguments de *return-expression* doivent avoir le même type de données que *default-expression*.

 *default-expression*   
L’expression à renvoyer si aucune valeur des arguments de l’étiquette n’est égale à la valeur de *condition-expression*. Il peut s’agir d’un nom de champ comme `address`, d’une valeur littérale comme « `Unknown` » ou d’une autre fonction scalaire comme `toString(salesAmount)`. *default-expression* doit avoir le même type de données que tous les arguments de *return-expression*.

## Type de retour
<a name="switch-function-return-type"></a>

`switch` renvoie une valeur du même type de données que les valeurs de *return-expression*. Toutes les données renvoyées par *return-expression* et *default-expression* doivent être du même type de données ou être converties dans le même type de données. 

## Exemples généraux
<a name="switch-function-example"></a>

L'exemple suivant renvoie le Région AWS code du nom de la région d'entrée. 

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

Les valeurs suivantes sont celles du champ donné.

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

Pour ces valeurs, les valeurs suivantes sont renvoyées.

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

## Utilisation d’un commutateur pour remplacer `ifelse`
<a name="switch-instead-of-ifelse"></a>

Le cas d’utilisation `ifelse` suivant est un équivalent de l’exemple précédent, mais pour `ifelse` évaluer si les valeurs d’un champ sont égales à des valeurs littérales différentes, il est préférable d’utiliser `switch` à la place.

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

## Expression comme valeur de retour
<a name="switch-expression-as-return-value"></a>

L’exemple suivant utilise des expressions dans des *return-expressions* :

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

L’exemple précédent modifie le temps de retard prévu pour chaque vol au départ d’une ville donnée.

![\[Une image des résultats de l’exemple de fonction, présentés sous forme de tableau.\]](http://docs.aws.amazon.com/fr_fr/quick/latest/userguide/images/switch-function-example.png)
