= The elsif Statement

.Syntax
[source,unlang]
----
if <condition-1> {
    [ statements-1 ]
}
elsif <condition-2> {
    [ statements-2 ]
}
else {
    [ statements-3 ]
}
----

An `elsif` statement is used to evaluate a subsequent
xref:unlang/condition/index.adoc[condition] after a preceding xref:unlang/if.adoc[if] statement
evaluates to `false`.  In the example above, when _<condition-1>_
evaluates to false, then _statements-1_ are skipped and _<condition-2>_
is checked.  When _condition-2_ evaluates true, then _statements-2_
are executed.  When _<condition-2>_ evaluates false, then
_statements-2_ are skipped and _statements-3_ are executed.

As with xref:unlang/if.adoc[if], an `elsif` clause does not need to be followed by
an xref:unlang/else.adoc[else] statement.  However, any xref:unlang/else.adoc[else]
statement must be the last statement in an `elsif` chain. An arbitrary number of
`elsif` statements can be chained together to create a series of
conditional checks and statements.

.Example
[source,unlang]
----
if (&User-Name == "bob") {
    reject
}
elsif (&User-Name == "doug") {
    ok
}
----

The last entry in an `elsif` section can also be an xref:unlang/actions.adoc[actions] subsection.

// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
// This documentation was developed by Network RADIUS SAS.
