# Conditional Structures

In pseudocode, there are two types of conditional structures that are utilised, being IF statements and CASE statements.

### IF Statements

IF statements utilise a specific set of keywords that need to be included, being IF, THEN, ENDIF.

```
IF <condition> THEN
    <code to be executed>
ENDIF
```

E.g:

```
IF num1 = 3 THEN
    OUTPUT "num1 is 3"
ENDIF
```

IF statements can also include an ELSE clause to be able to branch into other code depending on if the IF statement has passed or not.

```
IF <condition> THEN
    <code to be executed>
ELSE
    <code to otherwise be executed>
ENDIF
```

E.g:

```
IF num1 = 3 THEN
    OUTPUT "num1 is 3"
ELSE
    OUTPUT "num1 isn't 3"
ENDIF
```

Nested IF statements can also be used, however, care must be taken with inserting ENDIFs into the correct locations. An example of this would be:

```
IF num1 = 3 THEN
    IF num2 = 3 THEN
        OUTPUT "num1 and num2 are 3"
    ELSE
        OUTPUT "Only num1 is 3"
    ENDIF
ELSE
    IF num2 = 3 THEN
        OUTPUT "Only num2 is 3"
    ELSE
        OUTPUT "Neither num1 or num2 is 3"
    ENDIF
ENDIF
```

### CASE Statements

CASE statements are where multiple branches of code can be executed, depending on the value of the variable given to the statement. They follow the keywords CASE OF, ENDCASE.

```
CASE OF <variable>
    <value1> : <code to be executed>
    <value2> : <code to be executed>
    etc...
ENDCASE
```

E.g:

```
CASE OF num1
    1 : OUTPUT "num1 is 1"
    2 : OUTPUT "num1 is 2"
    3 : OUTPUT "num1 is 3"
ENDCASE
```

An OTHERWISE clause can be added, which acts similarly to an ELSE clause. It must always be the last case.

```
CASE OF <variable>
    <value1> : <code to be executed>
    <value2> : <code to be executed>
    etc...
    OTHERWISE : <code to be executed>
ENDCASE
```

E.g:

```
CASE OF num1
    1 : OUTPUT "num1 is 1"
    2 : OUTPUT "num1 is 2"
    3 : OUTPUT "num1 is 3"
    OTHERWISE : OUTPUT "num1 is not 1, 2 or 3"
ENDCASE
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pseudonajadocs.gitbook.io/editor/guides/conditional-structures.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
