Erlang 学习笔记-第二天 运算符,循环语句,条件语句
Erlang 有以下类型的运算符 -
-
算术运算符
- rem 第二数除以第一数的余数 示例 3 rem 2 = 1
- div div组件将执行除法并返回整数部分 3 div 2 = 1
- 其余 + - * / 类似科学计算法
-
关系运算符
- == 测试两个对象是否相等
- /= 测试两个对象是否为不相等
- < 测试左边对象是否小于右边操作对象
- =< 测试左边对象是否小于或等于右边操作对象
- > 测试左边对象是否大于右边操作对象
- >= 测试左边对象是否大于或等于右边操作对象
-
逻辑运算符
- or 逻辑 “或”操作符 true 或 true 结果为 true
- and 逻辑 “与”操作符 True 与 false 结果为 false
- not 逻辑 “非”操作符 非 false 结果为 true
- xor 逻辑 “异或”操作符 True异或 false 结果为 false
-
位运算符
Erlang提供四个位运算符。以下是在 Erlang 可用的位运算符。 band bor bxor bnot
Erlang 循环语句:
while语句实现, 由于Erlang中没有直接的while语句,因此必须使用Erlang中可用的递归技术来执行while语句的实现。
while_loop(List) ->
while_loop(List, 0).
while_loop([], Acc) ->
{done, Acc};
while_loop([_|T], Acc) ->
io:format("Current index: ~w~n", [Acc]),
while_loop(T, Acc + 1).
%% 计算列表中所有元素的和
sum([], Acc) ->
Acc ; %% 空列表的和为累积参数Acc的值
sum([H|T], Acc) -> %% 递归调用sum函数,将Acc加上当前列表头部元素,并传递给下一次递归调用
sum(T, Acc + H). %% 用于调用sum函数的接口
get_sum(List) ->
sum(List, 0). %% 初始累积参数Acc的值为0
for语句:
由于 Erlang 没有直接 for 语句,因此必须使用 Erlang 的递归技术来实现 for 语句。我们将尝试按照其他编程语言所遵循的相同的 for 循环实现。以下是应遵循的一般流程。
for(0,_) ->
[];
for(N,Term) when N > 0 ->
io:fwrite("Hello~n"),
[Term|for(N-1,Term)].
start() ->
for(5,1).
条件语句:
决策结构要求程序员指定一个或多个要由程序评估或测试的条件,如果条件被确定为真(true),则指定一个或多个要执行的语句,如果条件被确定为假(false),则指定其他要执行的语句。
提供了四种 决策声明:
if语句 : if语句由一个布尔表达式和一个或多个语句组成。
多重表达式 : If 表达式还允许同时计算多个表达式
嵌套if语句 : 可以在另一个 if 或 else if 语句中使用 if 或 else if 语句
Case语句 : 它可以用于根据case语句的输出执行表达式