Erlang 决策
Erlang 决策
决策结构要求程序员指定一个或多个要由程序评估测试的条件,以及一个或多个要在条件被确定为真的情况下执行的语句,以及如果条件被确定为假的情况下要执行的其他语句。
下面是在大多数编程语言中发现的典型决策结构的一般形式:
Erlang 语言提供以下类型的决策语句。
if语句:由布尔表达式和一个或多个语句组成。
多重表达式:if表达式还允许同时计算多个表达式。
嵌套if语句:您可以在另一个if语句内使用一个if语句或其他if语句。
case语句:它可以用于基于case语句的输出执行表达式。
Erlang if语句
我们将看到的第一个决策声明是“if”声明。Erlang中此语句的一般形式显示在以下程序中:
if condition -> statement#1; true -> statement #2 end.
在Erlang中,condition是评估为真或假的表达式。如果condition为真,则执行语句# 1,否则执行语句#2。
例子
-module(helloworld). -export([start/0]). start() -> A = 5, B = 6, if A == B -> io:fwrite("True"); true -> io:fwrite("False") end.
上述计划需要注意以下事项
这里使用表达式变量A和b之间的比较
->运算符需要遵循表达式。
;需要遵循语句#1。
->运算符需要遵循真实表达式。
语句“end”需要在那里表示“if”块的结尾。
上述程序的结果为:
False
Erlang 多重表达式
if表达式还允许同时计算多个表达式。Erlang中此语句的一般形式显示在以下程序中:
语法
if condition1 -> statement#1; condition2 -> statement#2; conditionN -> statement#N; true -> defaultstatement end.
在Erlang中,condition是评估为真或假的表达式。如果条件为true,则将执行语句#1。否则评估下一个condition等等。如果没有评估为true,则评估defaultstatement。
例子
-module(helloworld). -export([start/0]). start() -> A = 5, B = 6, if A == B -> io:fwrite("A is equal to B"); A < B -> io:fwrite("A is less than B"); true -> io:fwrite("False") end.
上述代码的输出结果如下:
A is less than B
Erlang 嵌套if语句
有时我们需要将多个if语句嵌入到内部,这在其他编程语言中是很容易实现的,在Erlang也可以。
例子
-module(helloworld). -export([start/0]). start() -> A = 4, B = 6, if A < B -> if A > 5 -> io:fwrite("A is greater than 5"); true -> io:fwrite("A is less than 5") end; true -> io:fwrite("A is greater than B") end.
上述代码的输出结果:
A is less than 5
Erlang case语句
Erlang提供case语句,可用于基于case语句的输出执行表达式。
case声明的一般形式为-
case expression of value1 -> statement#1; value2 -> statement#2; valueN -> statement#N end.
case声明的工作流程如下
要评估的运算式会放置在case表达式中。通常为一个值,该值在后续语句中使用。
每个值都是根据case表达式传递的值计算的。根据哪个值为true,将执行后续语句。
例子
-module(helloworld). -export([start/0]). start() -> A = 5, case A of 5 -> io:fwrite("The value of A is 5"); 6 -> io:fwrite("The value of A is 6") end.
上述代码的输出结果:
The value of A is 5.