1. 程式人生 > >erlang中迴圈結構的例子

erlang中迴圈結構的例子

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])->

   %%code%%
   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