Elm 决策构造
决策结构要求程序员指定或多个要由程序评估或测试的条件,以及确定条件为真的情况下要执行的一条或多条语句,以及选择确定条件时要执行的其他语句。
下面的是大多数编程语言中常见的典型决策结构的一般形式:
决策构造在执行指令之前评估条件。榆树的决策构造如下-
if...then...else
所述 if…then 构建求值时执行的块之前的状态。如果布尔表达式的计算结果为true,则将执行then语句中的块。如果布尔表达式的计算结果为false,则将执行else语句中的块。
与其他编程语言不同,在Elm中,我们必须提供else分支。否则,Elm 将引发。
if boolean_expression then statement1_ifTrue else statement2_ifFalse
在REPL终端中尝试以下示例。
> if 10>5 then "10 is bigger" else "10 is small""10 is bigger" : String
Nested If
nested if 语句对于测试多个条件很有用。nested if 语句的语法如下:
if boolean_expression1 then statement1_ifTrue else if boolean_expression2 then statement2_ifTrue else statement3_ifFalse
在Elm REPL中尝试以下示例-
> =8080 : number> if >=80 then "Outstanding" else if > = 70 then "good" else "average""Outstanding" : String
Case
case语句可用于简化if then else语句。case语句的语法如下所示
case variable_name of constant1 -> Return_some_value constant2 -> Return_some_value _ -> Return_some_value if none of the above values match
case 语句检查变量的值是否与预定义的常量集匹配,并返回相应的值。
请注意,每种情况下返回的值必须具有相同的类型。如果变量值与任何给定常量都不匹配,则将控件传递给* default *(由// _表示),并返回相应的值。
在Elm REPL中尝试以下示例-
> n = 1010 : number> case n of \| 0 -> "n is Zero" \| _ -> "n is not Zero""n is not Zero" : String
上面的片段检查n的值是否为零。该控件传递给认值,该认值返回字符串“ n不为零”。