
- Erlang 教程
- Erlang - 首頁
- Erlang - 概述
- Erlang - 環境
- Erlang - 基本語法
- Erlang - Shell
- Erlang - 資料型別
- Erlang - 變數
- Erlang - 運算子
- Erlang - 迴圈
- Erlang - 決策
- Erlang - 函式
- Erlang - 模組
- Erlang - 遞迴
- Erlang - 數字
- Erlang - 字串
- Erlang - 列表
- Erlang - 檔案I/O
- Erlang - 原子
- Erlang - 對映
- Erlang - 元組
- Erlang - 記錄
- Erlang - 異常
- Erlang - 宏
- Erlang - 標頭檔案
- Erlang - 預處理器
- Erlang - 模式匹配
- Erlang - 保衛
- Erlang - BIFS
- Erlang - 二進位制
- Erlang - 函式
- Erlang - 程序
- Erlang - 郵件
- Erlang - 資料庫
- Erlang - 埠
- Erlang - 分散式程式設計
- Erlang - OTP
- Erlang - 併發
- Erlang - 效能
- Erlang - 驅動程式
- Erlang - Web程式設計
- Erlang 有用資源
- Erlang - 快速指南
- Erlang - 有用資源
- Erlang - 討論
Erlang - 迴圈
Erlang 是一種函數語言程式設計語言,所有函數語言程式設計語言都需要記住的是,它們不提供任何迴圈結構。相反,函數語言程式設計依賴於稱為遞迴的概念。
while 語句實現
由於 Erlang 中沒有直接的 while 語句,因此必須使用 Erlang 中可用的遞迴技術來執行 while 語句的實現。
我們將嘗試遵循與其他程式語言中 while 迴圈相同的實現方式。以下是將遵循的通用流程。

讓我們來看一個如何使用遞迴在 Erlang 中實現 **while** 迴圈的示例。
示例
-module(helloworld). -export([while/1,while/2, start/0]). while(L) -> while(L,0). while([], Acc) -> Acc; while([_|T], Acc) -> io:fwrite("~w~n",[Acc]), while(T,Acc+1). start() -> X = [1,2,3,4], while(X).
關於上述程式,需要注意以下幾點:
定義一個名為 while 的遞迴函式,該函式將模擬我們 while 迴圈的實現。
例如,將變數 X 中定義的一系列值作為輸入傳遞給我們的 while 函式。
while 函式獲取每個列表值並將中間值儲存在變數“Acc”中。
然後為列表中的每個值遞迴呼叫 while 迴圈。
上述程式碼的輸出將是:
輸出
0 1 2 3
for 語句
由於 Erlang 中沒有直接的 **for** 語句,因此必須使用 Erlang 中可用的遞迴技術來執行 **for** 語句的實現。
我們將嘗試遵循與其他程式語言中 **for** 迴圈相同的實現方式。以下是應遵循的通用流程。

讓我們來看一個如何使用遞迴在 Erlang 中實現 **for** 迴圈的示例。
示例
-module(helloworld). -export([for/2,start/0]). for(0,_) -> []; for(N,Term) when N > 0 -> io:fwrite("Hello~n"), [Term|for(N-1,Term)]. start() -> for(5,1).
關於上述程式,需要注意以下幾點:
我們正在定義一個遞迴函式,該函式將模擬我們 **for迴圈** 的實現。
我們在“for”函式中使用了一個守衛,以確保 N 值或限制為正值。
我們透過在每次遞迴時減少 N 的值來遞迴呼叫 for 函式。
上述程式碼的輸出將是:
輸出
Hello Hello Hello Hello Hello
廣告