# Switch

## Overview

![The Switch Node.](https://2628349686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwnv17cpjDin2deSlOz0z%2Fuploads%2Fgit-blob-7e8c56468ad8b4d7bc2f788a8943355b919f5d6c%2Fswitchupdatedimage.png?alt=media)

**Switch** takes an input value and triggers one of several output **Pulses**, based on whether or not the input matches a pre-defined value. These pre-defined values, referred to as *cases* in computer programming, can be defined as a list in the `Cases` **Attribute**. Each value added to the **Node** also creates a corresponding output **Pulse**. If the value of the `Input` **Socket** matches a value defined in the `Cases` **Attribute**, its corresponding **Pulse** is triggered. If no match is found, then the `Default` **Pulse** is triggered instead.

[**Scope**](https://docs.incari.com/incari-studio/2023.1/overview#scopes): **Project**, **Scene**, **Function**, **Prefab**.

## Attributes

![The Switch Node Attributes.](https://2628349686-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwnv17cpjDin2deSlOz0z%2Fuploads%2Fgit-blob-0d3d2f8c619ac69da44988137996df2b3c640c2d%2Fswitchattributesactual.png?alt=media)

### Inputs

| Attribute   | Type          | Description                                                        |
| ----------- | ------------- | ------------------------------------------------------------------ |
| `Data Type` | **Drop-down** | The type of data that will be plugged into the `Input` **Socket**. |

### Outputs

| Attribute   | Type                                          | Description                                                                            |
| ----------- | --------------------------------------------- | -------------------------------------------------------------------------------------- |
| `Cases [n]` | *Defined in the `Data Type`* ***Attribute**.* | The pre-defined values, which will be compared to the value of the `Input` **Socket**. |

## Inputs

| Input             | Type                                          | Description                                                           |
| ----------------- | --------------------------------------------- | --------------------------------------------------------------------- |
| *Pulse Input* (►) | **Pulse**                                     | A standard input **Pulse**, to trigger the execution of the **Node**. |
| `Input`           | *Defined in the `Data Type`* ***Attribute**.* | The value to be compared with the list of pre-defined `Cases`.        |

## Outputs

| Output      | Type      | Description                                                                                                                                      |
| ----------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Case: [n]` | **Pulse** | An **Output Pulse** for each pre-defined *case*, whose execution is triggered if the corresponding value is evaluated as being equal to `Input`. |

## External Links

* [*Switch statement*](https://en.wikipedia.org/wiki/Switch_statement) on Wikipedia.
