Switch: различия между версиями
Перейти к навигации
Перейти к поиску
Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == '''Switch''' - оператор позволяет сделать логическое ветвление. В зависимости от...») |
Tatikoma (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: Нет | Привязка к окну: Нет | ||
− | + | <br>Работа со свернутым окном: Да | |
− | switch | + | switch <значение> |
− | case | + | case <значение 1>: [команда] |
[команда] | [команда] | ||
− | case | + | case <значение 2>: |
[команда] | [команда] | ||
break | break | ||
Строка 79: | Строка 79: | ||
[[If]] | [[If]] | ||
− | + | <br>[[Break]] | |
== История развития == | == История развития == | ||
'''2.33''' | '''2.33''' | ||
− | + | <br>Добавил конструкцию 'switch'. В строке с 'case' после двоеточия может присутствовать команда. Если в последнем 'case' не указано 'значение', и среди остальных не было совпадения, то выполнится последний (сработает как 'else'). Оператор 'break' прерывает выполнение текущего 'switch'. Если в текущем 'case' нет оператора 'break', то выполнится следующий 'case', и так далее пока не встретится 'break'. | |
− | switch | + | switch <значение> |
− | case | + | case <значение 1>: [команда] |
[команда] | [команда] | ||
− | case | + | case <значение 2>: |
[команда] | [команда] | ||
break | break | ||
Строка 96: | Строка 96: | ||
'''2.39''' | '''2.39''' | ||
− | + | <br>Исправил 'break' при использовании вложенных 'switch'. | |
'''2.41''' | '''2.41''' | ||
− | + | <br>Исправил 'case:'. | |
[[Категория:Условия]] | [[Категория:Условия]] |
Текущая версия на 11:23, 28 августа 2019
Описание
Switch - оператор позволяет сделать логическое ветвление. В зависимости от значения переменой может быть выполнен только определенный код. В отличии от if не ограничен только двумя блоками правда/ложь.
Синтаксис
Привязка к окну: Нет
Работа со свернутым окном: Да
switch <значение> case <значение 1>: [команда] [команда] case <значение 2>: [команда] break case : [команда] end_switch
Примеры
// Пример 1 set #a 2 switch #a case 1: msg Переменная "#a" = 1 //если #a = 1 break case 2: msg Переменная "#a" = 2 //если #a = 2 break case 3: msg Переменная "#a" = 3 //если #a = 3 break end_switch end_script
// Пример 2 set #a 7 switch #a case 1: case 2: case 3: case 4: case 5: msg Переменная "#a" от 1 до 5 //если #a от 1 до 5 break case 6: case 7: case 8: case 9: msg Переменная "#a" = от 6 до 9 //если #a от 6 до 9 break case : msg Переменная "#a" меньше 1 или больше 9 //если #a меньше 1 или больше 9 end_switch end_script
// Пример 3 // В отличии от If, Switch учитывает регистр при сравнении set $a Андрей if $a = андрей log +++ end_if if $a = Андрей log +++ end_if switch $a case андрей: log андрей case Андрей: log Андрей end_switch End_script // в результате в If выполнятся оба условия , а в Switch только одно.
// Пример 4 // Проверить цвет в точке, в зависимости от полученного выполнить определённое действие init_arr %a (1) 16777215 178 13538882 // искомые цвета (16777215 178 13538882) get color #color 475, 251 // получить цвет в координатах 475, 251 и присвоить его переменной '#color' switch #color // в зависимости от полученного цвета будет выполнено одно из условий case %a [1 1]: hint Первый цвет break case %a [1 2]: hint Второй цвет break case %a [1 3]: hint Третий цвет break end_switch
Смотрите также
История развития
2.33
Добавил конструкцию 'switch'. В строке с 'case' после двоеточия может присутствовать команда. Если в последнем 'case' не указано 'значение', и среди остальных не было совпадения, то выполнится последний (сработает как 'else'). Оператор 'break' прерывает выполнение текущего 'switch'. Если в текущем 'case' нет оператора 'break', то выполнится следующий 'case', и так далее пока не встретится 'break'.
switch <значение> case <значение 1>: [команда] [команда] case <значение 2>: [команда] break case : [команда] end_switch
2.39
Исправил 'break' при использовании вложенных 'switch'.
2.41
Исправил 'case:'.