Erlang if语句内嵌

有时,会有有多个 if 语句嵌入彼此内部,在其他编程语言这是比较常见。在 Erlang 中也是这样的。

语法

  1. if
  2. condition ->
  3. if
  4. condition ->
  5. statement#2;
  6. true ->
  7. statement #3
  8. end.
  9. true ->
  10. statement #1
  11. end.

下图是嵌套 if 语句流程的示意图。

Erlang内嵌if语句

这里是一个示例程序如下所示:

示例

  1. -module(helloworld).
  2. -export([start/0]).
  3. start() ->
  4. A = 4,
  5. B = 6,
  6. if
  7. A < B ->
  8. if
  9. A > 5 ->
  10. io:fwrite("A is greater than 5");
  11. true ->
  12. io:fwrite("A is less than 5")
  13. end;
  14. true ->
  15. io:fwrite("A is greater than B")
  16. end.

以下是上述程序需要说明的一些关键点

  • 当第一个 if 语句条件评估(计算)为真,那么它会开始第二 if 语句条件评估(计算)

上面的代码的输出结果是:

  1. A is less than 5