5.17. Выражение переключатель (switch)

Ссылка на оригинальную статью
switch является оператором ветвления в языках программирования, в том числе и в Haxe.
Конструкция switch открывается выражением «switch» и тело функции ограничивается фигурными скобками {}. Ветки switch начинаются или с ключевого слова «case» с условием выполнения данной ветки, или же с ключевого слова «default» для состояния по умолчанию. В обоих случаях после условия идет двоеточие : и блок операторов, которой надо выполнить.

Так как в Haxe ветки case выполняются независимо, break не нужен.
Конструкции switch могут быть использованы как значение; в таком случае типы всех case и default должны унифицироваться.
Пример. Программа, которая выводит текущий день недели.

Haxe позволяет использовать выражения, например, мы можем в предыдущем примере написать не b, а b+1, если мы захотим узнать следующий день.
Также Haxe дает нам большие возможности в использовании switch. Например, мы можем проверять соответствия значений различных типов с помощью регулярных выражений (шаблонов).
Рассмотрим пример с массивом, взятый из данной статьи. В качестве входного параметра для оператора switch дается массив фиксированной длины. В зависимости от заполнения и длины массива, оператор будет выдавать нужный результат. Данный пример показывает нам, что мы можем указывать как и нужный нам размер массива, так и заполнение определенной ячейки массива. Например, программа выведет 0 только при массиве длинной в два элемента, где в первой ячейке будет число 2. Если же размер массива будет другой или первой будет стоять не 2, то оператор продолжит сравнения с остальными условиями. В данном примере роль состояния по умолчанию выполняет последнее условие, которое «пропускает» любой массив. Стоит заметить, что если выполняются сразу два условия, например, массив будет состоять из [2,6], то программа все равно выведет 0, так как первое условие идет раньше.

5 thoughts on “5.17. Выражение переключатель (switch)

  1. — Зачем использовать switch для проверки на четность? Разберитесь для чего он вообще нужен.
    — Это не совсем оператор switch. Скорее выражение. Мы ведь можем писать так

    • Нам намекают, что можно сделать более изощренный пример, чем со скалярными значениями. Интересно, с массивом можно? Вроде можно. Почему бы не разобрать детально этот пример из ссылки:

      Почему-то опустили ссылки в конце оригинального текста.
      Да! И почему в switch (переменная)? Т.е. там не может быть выражения, например x+1?

Добавить комментарий