# If Statement

> Compare two values and run different blocks based on the result.

- ID: `if_statement`
- Type: Condition
- Category: [Logic](https://inventor.bot/docs/reference/blocks/logic.md)

- Condition block: write `if if_statement(Args{...}) { ... }`, or use it as a `"true"`/`"false"` value. See conditions.

**Inputs**

| Name | Required | Description | Value |
| --- | --- | --- | --- |
| `value_1` | yes | The first value to compare. | e.g. `"hello"` |
| `condition` | yes | The comparison operator. | `"equals (=)"`, `"equals (case insensitive)"`, `"equals (numeric)"`, `"equals (float)"`, `"does not equal (!=)"`, `"does not equal (case insensitive)"`, `"greater than (>)"`, `"greater than (float)"`, `"less than (<)"`, `"less than (float)"`, `"greater or equal (>=)"`, `"greater or equal (float)"`, `"less or equal (<=)"`, `"less or equal (float)"`, `"contains"`, `"contains (case insensitive)"`, `"does not contain"`, `"does not contain (case insensitive)"`, `"is in the comma-separated list"`, `"is in the comma-separated list (case insensitive)"`, `"is not in the comma-separated list"`, `"is not in the comma-separated list (case insensitive)"`, `"starts with"`, `"starts with (case insensitive)"`, `"does not start with"`, `"does not start with (case insensitive)"`, `"ends with"`, `"ends with (case insensitive)"`, `"does not end with"`, `"does not end with (case insensitive)"`, `"is empty"`, `"is not empty"` |
| `value_2` | yes | The second value to compare. | e.g. `"hello"` |
| `if_true` |  | Blocks to run when the condition is true. | blocks: `func() { ... }` |
| `if_false` |  | Blocks to run when the condition is false. | blocks: `func() { ... }` |

**Outputs**

| Name | Description | Value |
| --- | --- | --- |
| `result` | Whether the condition evaluated to true or false. | e.g. `"true"` |

**Example**

```go
if "hello" == "hello" {
	send_text_message(Args{channel_id: trigger.channel_id, message_content: "Yes"})
}
```