# Branching

For conditional branching, the if-then-go construct is
 used.

## if statement

The if statement is a conditional branch statement in a paragraph or
 PROC.

## Syntax

```
if {"|’}string1{"|’} [<|l|=|e|>|g] {"|’}string2{"|’} then go label
if [constant|<<input.prompt>>] [conditional]
[constant|<<input.prompt>>]then go label
```

 The parameters include:

| input.prompt | Ties in the screen input and output syntax: ```
<<cnumber>>
<<inumber,prompt.text>>
<<f(file.name,item.name{,attribute{,value}}),prompt.text>>
<<{options}{,@([x,y|bell|clr])},prompt.text{,mask}>>
``` |
| --- | --- |
| conditional | > or g The if command compares the two string operators. If they are both
 numeric, then they are compared numerically. If either or both cannot be converted to a
 number, then they are compared alphabetically.

 Between these two strings is a single-character conditional operator, which can be one of
 these:

| or g | Greater than |

 If the condition evaluates to true, then the paragraph processor starts searching from the
 beginning of the paragraph for a label which matches the one after the
 go statement, but which must be followed by a colon and a space.
 When this label is found, execution of the paragraph continues on the line containing the
 label.

 One of the string parameters in an if statement is usually an input
 substitution.

## Example(s)

```
PA
if <<Input a number between 1 and 10:>> > 5 then go greater
display Less than or equal to 5
Go done
greater: display Greater than 5
done: * There must be a space after the colon
```

 The previous example asks the user for a number, and then prints a result based on the
 value of this number.

## Labels

Labels are used as the target of if-then-go statements and consist of an
 alphanumeric label name, followed by a colon, and at least one space. Other paragraph
 commands can follow on the same line. The syntax for labels:

```
labels: {tcl.commands}
```

 For example:

```
if<<inputx>><3 then go less 3
less 3: displays something
```

---
Source: https://d3codex.com/tcl/branching/ - part of the D3Codex reference.
