Logo

Programming-Idioms

  • Elixir
  • Scala

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.

true match {
  case _ if c1 => f1()
  case _ if c2 => f2()
  case _ if c3 => f3()
}

Using match with guards
if (c1) {
  f1()
} else if (c2) {
  f2()
} else if (c3) {
  f3()
}

Using if and else
cond do
  c1 -> f1
  c2 -> f2
  c3 -> f3
end

conditionals must evaluate to boolean
if c1 then
    f1;
elsif c2 then
    f2;
elsif c3 then
    f3;
end if;

assume that f, g, and h are procedure and that a and b are Boolean

New implementation...
< >
programming-idioms.org