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:'.