Cobra/Keywords/branch: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
категория
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 4: Строка 4:
== Синтаксис ==
== Синтаксис ==
<font face="verdana">
<font face="verdana">
<source lang="python">
<syntaxhighlight lang="python">
branch <variable>
branch <variable>
on <value> [or <value>]...
on <value> [or <value>]...
Строка 17: Строка 17:
on <value>, <statement>
on <value>, <statement>
[else, <statement>]
[else, <statement>]
</source></font>
</syntaxhighlight></font>


Значение переменной variable сравнивается со значениями value и выполняется соответствующее выражение. Если не найдено совпадений, выполняется выражение else.<br />
Значение переменной variable сравнивается со значениями value и выполняется соответствующее выражение. Если не найдено совпадений, выполняется выражение else.<br />
Строка 26: Строка 26:
== Пример ==
== Пример ==
<font face="verdana">
<font face="verdana">
<source lang="python">
<syntaxhighlight lang="python">
# Notice the keywords `branch` and
# Notice the keywords `branch` and
# `on` as well as the indentation under each `on` clause
# `on` as well as the indentation under each `on` clause
Строка 44: Строка 44:
assert isEven
assert isEven
assert word == 'two'
assert word == 'two'
</source></font>
</syntaxhighlight></font>
Сокращенная форма, с одним выражением.
Сокращенная форма, с одним выражением.
<font face="verdana">
<font face="verdana">
<source lang="python">
<syntaxhighlight lang="python">
x = 'toof'
x = 'toof'
branch x
branch x
Строка 54: Строка 54:
else, word = 'else'
else, word = 'else'
assert word == 'else'
assert word == 'else'
</source></font>
</syntaxhighlight></font>
Сокращенная форма, с несколькими значениями сравнения.
Сокращенная форма, с несколькими значениями сравнения.
<font face="verdana">
<font face="verdana">
<source lang="python">
<syntaxhighlight lang="python">
x = 2
x = 2
branch x
branch x
Строка 63: Строка 63:
else, word = 'else'
else, word = 'else'
assert word == 'number'
assert word == 'number'
</source></font>
</syntaxhighlight></font>





Текущая версия от 16:08, 16 апреля 2020

Branch[править]

Branch оператор используется для условно выполнения кода, в случае если есть несколько вариантов исполнения в зависимости от значения переменной.

Синтаксис[править]

branch <variable>
    on <value> [or <value>]...
        <statements>
    [on <value> [or <value>]...
        <statements> ]...
    [else
        <statements>]

branch <variable> 
    on <value>, <statement>
    on <value>, <statement> 
    [else, <statement>]

Значение переменной variable сравнивается со значениями value и выполняется соответствующее выражение. Если не найдено совпадений, выполняется выражение else.

  • Переменная variable должна быть целое число, символ, перечисление или строка.
  • Выражения их соответствие (<value>) должны быть константами (например 0, 1, с'х', State.Off, "foo").

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

Пример[править]

    # Notice the keywords `branch` and 
    # `on` as well as the indentation under each `on` clause
    x = 2 
    branch x 
        on 1 
            isEven = false 
            word = 'one' 
        on 2 
            isEven = true
            word = 'two' 
        on 3 
            isEven = false 
            word = 'three' 
        else
            word='UNKNOWN'
    assert isEven 
    assert word == 'two'

Сокращенная форма, с одним выражением.

    x = 'toof' 
    branch x 
        on 'woof', word = 'one' 
        on 'doof', word = 'three' 
        else, word = 'else' 
    assert word == 'else'

Сокращенная форма, с несколькими значениями сравнения.

    x = 2 
    branch x 
        on 1 or 2 or 3, word = 'number' 
        else, word = 'else' 
    assert word == 'number'