# Idiom #131 Successive conditions

Execute f1 if condition c1 is true, or else f2 if condition c2 is true, or else f3 if condition c3 is true.
Don't evaluate a condition when a previous condition was true.

``````if
C1 -> f1();
C2 -> f2();
C3 -> f3()
end.``````
``````if c1 then
f1;
elsif c2 then
f2;
elsif c3 then
f3;
end if;``````
``````if (c1)
{
f1();
}
else if (c2)
{
f2();
}
else if (c3)
{
f3();
}``````
``````(cond
c1 (f1)
c2 (f2)
c3 (f3))``````
``````IDENTIFICATION DIVISION.
PROGRAM-ID. condition.
PROCEDURE DIVISION.
EVALUATE TRUE
WHEN c1
PERFORM f1
WHEN c2
PERFORM f2
WHEN c3
PERFORM f3
END-EVALUATE
STOP RUN.``````
``````(c1 && (f1(), true))
|| (c2 && (f2(), true))
|| (c3 && (f3(), true));``````
``````if (c1)
{
f1();
}
else if (c2)
{
f2();
}
else if (c3)
{
f3();
}``````
``````if (c1)
f1();
else if (c2)
f2();
else if (c3)
f3();``````
``````if (c1)
{
f1();
}
else if (c2)
{
f2();
}
else if (c3)
{
f3();
}``````
``````if      (c1) f1;
else if (c2) f2;
else if (c3) f3;``````
``````if (c1) {
f1;
} else if (c2) {
f2;
} else if (c3) {
f3;
}``````
``````cond do
c1 -> f1
c2 -> f2
c3 -> f3
end``````
``````if (c1) then
call f1
else if (c2) then
call f2
else if (c3) then
call f3
end if``````
``````switch {
case c1:
f1()
case c2:
f2()
case c3:
f3()
}``````
``````if (c1) {
f1()
} else if (c2) {
f2()
} else if (c3) {
f3()
}``````
``````let x | c1 = f1
| c2 = f2
| c3 = f3``````
``````if c1 then f1
else if c2 then f2
else f3``````
``c1 ? f1 : c2 ? f2 : f3``
``````switch (true) {
case c1:
f1();
break;
case c2:
f2();
break;
case c3:
f3();
break;
}``````
``````if (c1) {
f1();
} else if (c2) {
f2();
} else if (c3) {
f3();
}``````
``````if (c1) {
f1();
} else if (c2) {
f2();
} else if (c3) {
f3();
}``````
``````when {
c1 -> f1()
c2 -> f2()
c3 -> f3()
}``````
``````(cond (c1 (f1))
(c2 (f2))
(c3 (f3)))``````
``````if (c1) then f1()
elseif (c2) then f2()
elseif (c3) then f3()
end``````
``````if (c1) f1();
else if (c2) f2();
else if (c3) f3();``````
``````if (\$c1) {
f1();
} else if (\$c2) {
f2();
} else if (\$c3) {
f3();
}``````
``if c1 then f1 else if c2 then f2 else if c3 then f3;``
``````if (\$c1)    { \$f1 }
elsif (\$c2) { \$f2 }
elsif (\$c3) { \$f3 }
``````
``````if c1:
f1()
elif c2:
f2()
elif c3:
f3()``````
``f1() if c1 else f2() if c2 else f3() if c3 else None``
``````case
when c1
f1
when c2
f2
when c3
f3
end``````
``````match true {
_ if c1 => f1(),
_ if c2 => f2(),
_ if c3 => f3(),
_ => (),
}``````
``if c1 { f1() } else if c2 { f2() } else if c3 { f3() }``
``````true match {
case _ if c1 => f1()
case _ if c2 => f2()
case _ if c3 => f3()
}``````
``````if (c1) {
f1()
} else if (c2) {
f2()
} else if (c3) {
f3()
}
``````
``````(cond (c1 (f1))
(c2 (f2))
(c3 (f3)))``````
``````true caseOf: {
[c1] -> [f1].
[c2] -> [f2].
[c3] -> [f3]}
``````
``````If c1 Then
f1()
ElseIf c2 Then
f2()
else c3 Then
f3()
End If``````

programming-idioms.org