Вяз - принятие решений
Структуры принятия решений требуют, чтобы программист указал одно или несколько условий, которые должны быть оценены или протестированы программой, вместе с оператором или операторами, которые должны быть выполнены, если условие определено как истинное, и, необязательно, другие операторы, которые должны быть выполнены, если условие определено как ложное.
Ниже показана общая форма типичной структуры принятия решений, которая присутствует в большинстве языков программирования.
Конструкция принятия решения оценивает условие до выполнения инструкций. Конструкции принятия решений в Elm классифицируются следующим образом:
Sr. No. | утверждение | Описание |
---|---|---|
1 | если ... то ... еще заявление | Оператор if состоит из логического выражения, за которым следует then, которое выполняется, если выражение возвращает true, и else, которое выполняется, если выражение возвращает false. |
2 | вложенный оператор if | Вы можете использовать одно if ... then ... else внутри другого if. |
3 | заявление о случае | Проверяет значение переменной по списку значений. |
if ... then ... else Заявление
В if…thenконструкция оценивает условие перед выполнением блока кода. Если логическое выражение истинно, то будет выполнен блок кода внутри оператора 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
Вложенный If
Вложенный оператор if полезен для тестирования нескольких условий. Синтаксис вложенного оператора if приведен ниже -
if boolean_expression1 then statement1_ifTrue else if boolean_expression2 then statement2_ifTrue else statement3_ifFalse
Иллюстрация
Попробуйте следующий пример в Elm REPL -
> score=80
80 : number
> if score>=80 then "Outstanding" else if score > = 70 then "good" else "average"
"Outstanding" : String
Заявление по делу
Оператор 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 = 10
10 : number
> case n of \
| 0 -> "n is Zero" \
| _ -> "n is not Zero"
"n is not Zero" : String
Приведенный выше фрагмент кода проверяет, равно ли значение n нулю. Управление передается по умолчанию, что возвращает строку «n не равно нулю».