Учебники

Вяз — Принятие решений

Структуры принятия решений требуют, чтобы программист определял одно или несколько условий, которые должны быть оценены или протестированы программой, вместе с оператором или инструкциями, которые должны быть выполнены, если условие определено как истинное, и, необязательно, другие операторы, которые должны быть выполнены, если условие определяется как ложное.

Ниже показана общая форма типичной структуры принятия решений, встречающейся в большинстве языков программирования.

Принятие решения

Конструкция принятия решения оценивает условие перед выполнением инструкций. Конструкции для принятия решений в Elm классифицируются следующим образом:

Старший утверждение Описание
1 если … то … еще заявление Оператор if состоит из логического выражения, за которым следует то, которое выполняется, если выражение возвращает истину, и еще, которое выполняется, если выражение возвращает ложь
2 вложенный оператор if Вы можете использовать один, если … тогда … еще внутри другого, если.
3 постановка дела Проверяет значение переменной по списку значений.

если … то … еще заявление

Конструкция if… then оценивает условие перед выполнением блока кода. Если логическое выражение имеет значение true, тогда будет выполнен блок кода внутри оператора then. Если логическое выражение оценивается как ложное, то будет выполнен блок кода внутри оператора 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 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 не ноль».