Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Switch Case. Помогите., Позязя.
DoomAngelBlade
сообщение 11.7.2017, 23:46
Сообщение #1


**

Neophyte
Сообщений: 14
Регистрация: 7.4.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.425



Код:

Switch #Stage
case 0: sendex 350
case 1: sendex 999
case 2: sendex 0

end_switch

Лог:

Switch #Stage(0)
case 0:(0x0:) sendex 350
sendex 0
case 1: sendex 999
sendex 2
case 2: sendex 0
sendex 2

Нужно:
Отослать при Stage 0 - 350
При 1 - 999
При 2 - 0

Что делает:
Отсылает 3509990 и идёт дальше.

У меня перед этим Switch есть другой Switch, работающий на той же переменной

Приближенный код:

Set #Stage 0
:Run
Switch #Stage
case 0: goto Changer
case 1: goto Changer
case 2: goto Changer
case 3: goto stage3
case 4: goto stage4
case 5: goto stage5
End_switch

:Changer
kleft X, Y abs
kleft X, Y abs
Switch #Stage
case 0: Sendex 350
case 1: Sendex 999
case 2: Sendex 0
end_switch
sendex {enter}
Switch #Stage
case 0: goto stage0
case 1: goto stage1
case 2: goto stage2
end_switch
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.7.2017, 2:16
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



Отсутствует break - прерывания цикла.
Код
Switch #Stage
    case 0: sendex 350
        break
    case 1: sendex 999
        break
    case 2: log 0
end_switch

Для примера:
Код
set #Stage 1
Switch #Stage
    case 0: log 350
    case 1: log 999
    case 2: log !!!
    case 3: log 0
        break
    case 4: log 111
end_switch
end_script

Будут выполнены все case начиная с 1 до тех пор пока не встретится break.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DoomAngelBlade
сообщение 12.7.2017, 7:10
Сообщение #3


**

Neophyte
Сообщений: 14
Регистрация: 7.4.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.425



Цитата(cirus @ 12.7.2017, 2:16) *

Будут выполнены все case начиная с 1 до тех пор пока не встретится break.


т.е если #Stage = 3
а там есть
case 0: xxx
break
case 1: yyy
break
case 2: zzz
break
case 3: Gaben
break
То оно выполнит лишь 3 или 0-3?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.7.2017, 10:52
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26689
Пользователь №: 16.971
Возраст: 29



Цитата
То оно выполнит лишь 3 или 0-3?

Только 3.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 16.4.2024, 11:41
Designed by Nickostyle