erlang中迴圈結構的例子
阿新 • • 發佈:2019-01-11
http://blog.163.com/mr_zyf/blog/static/6024216120101114105758903/
由於erlang本身就沒有迴圈指令,所以要依靠函式的匹配和遞迴來實現。
例1:在指定範圍迴圈
程式碼:
forRange(Begin,End) when Begin<End ->
io:format("~p ",[Begin]),
forRange(Begin+1,End);
forRange(_,_)-> %%匹配Begin>=End時,結束迴圈
io:format("~n"),
ok.
%%呼叫 forRange(-10,-1)
%%結果 -10 -9 -8 -7 -6 -5 -4 -3 -2
例2:指定迴圈次數
程式碼:
for(N) when N>0 ->
%code%
io:format("~p ",[N-1]),
for(N-1);
for(0)-> %%匹配0時,結束迴圈
io:format("~n"),
ok;
for(_N)-> badarg. %%匹配N<0時,結束迴圈
%%呼叫 for(10)
%%結果:9 8 7 6 5 4 3 2 1 0
例3:列舉陣列每個元素
程式碼:
foreach([])-> %%匹配[]時,結束迴圈
io:format("~n"),
ok;
foreach([Ele|Tail])->
io:format("~p ",[Ele]),
foreach(Tail).
%%呼叫 foreach([0,1,2,3,4,5,6,7,8,9,10])
%%結果: 0 1 2 3 4 5 6 7 8 9 10