Erlang學習筆記(二)Erlang基礎語法之If、Case的使用

畫船聽雨發表於2017-08-23

If 的使用

1.If 的語法結構

if 
    Condition 1 -> 
        Action 1; 
    Condition 2 -> 
        Action 2; 
    Condition 3 -> 
        Action 3; 
    true ->
        Action 4
end.

在Erlang中If的使用如下:先對Condition 1求值,如值為true,那麼將執行Action 1,並跳出該結構。若Condition 1不成功,那麼就繼續對Condition 2求職,以此類推,直到有條件成功。
如果之前的情況都不滿足的話,則到達最後的true這個選項,類似於其他語言中的else, 如果這裡不寫的話會丟擲一個異常,還有就是這裡的if語句的最後一個條件是原子true。
注意:這裡Action 4是沒有 ; 的,end後面的 . 不要忘記寫了。
2.程式碼樣例:

-module(judge_test).
-export([judge/1]).

judge(X)->
    if
        X == 0 ->
            io:format("Hello~n");
        X == 10 ->
            io:format("10 is ~p. ~n",[X]);
        true ->
            io:format("Yes~n")
    end.

3.執行結果展示:
這裡寫圖片描述

Case的使用

  1. Case的語法結構
case Condition of 
     Result 1 ->
           Action 1;      
     Result 2 ->
           Action 2;
     Result 3 ->
           Action 3;
     Other ->
           Action 4;
end

在Erlang中Case的使用如下:對Condition進行求值,然後將結果依次對Result 1、Result 2等進行匹配,直到找到可以匹配的分支。如果所有的都沒有匹配的話就進入Other分支執行。如果這裡不寫的話也會丟擲一個異常。
2.程式碼樣例

-module(judge_test).
-export([judge/1]).

judge(X)->
    case X of
        0 ->
            io:format("Hello~n");
        10 ->
            io:format("10 is ~p. ~n",[X]);
        Other ->
            io:format("error~n")       
    end.

3.執行結果展示:
這裡寫圖片描述

小結

在Erlang語言中If與Case的邏輯與其他語言都是一樣的只不過是實現的方式不同。在這裡記錄一下,主要是學習一下基本的語法,希望早日可以熟悉。

相關文章