XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Return
В jass как всем известно проверяются все логические конструкции (if\then\else) даже если они вложены в конструкцию которая при проверке дает ложный ответ, и поидее все что после then не должно исполнятся.
Поможет ли избежать лишних проверок return?

Допустим мы имеем конструкцию со множеством логических конструкций, но ответ может быть только одним единственный, т.е. если ответ найден, остальные конструкции нам не нужны

Код:
function A takes bool a, bool b, bool c returns nothing
    if a {
     ...
     return
    }
    if b {
     ...
     return
    }
    if c {
     ...
     return
    }


Будет ли эта конструкция работать аналогично функции break в конструкции Switch ?
Старый 29.01.2011, 14:45
ScorpioT1000
Работаем
offline
Опыт: отключен
нет, return приведёт к выходу из функции. Пора бы знать, это же основы основ
ScorpioT1000 добавил:
if(a) {

} elseif(b) {

} elseif(c) {

} else {

}
чем это плохо?)
Старый 29.01.2011, 14:50
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Но перед ретурном ж выполнятся действия, а мне в идеале как раз нужно выполнить ряд действий, а остальное что б даж не проверялось. Т.е. из множества If -ов, сработает обязательно только один, в конце если поставить return как раз будет выход, а остальные даж проверятся не будет. Вроде как раз и получится как с оператором прерывания.

Faion добавил:
Цитата:
Сообщение от ScorpioT1000
чем это плохо?)

Ну если сработает а, всеравно ж проверятся на истину будут все остальные, ведь так?
Старый 29.01.2011, 14:56
Nekit1234007

offline
Опыт: 11,916
Активность:
Нет ведь, на то они и elseif'ы.
Старый 29.01.2011, 15:07
Klop
Папа римский
offline
Опыт: 13,006
Активность:
if a then
return
elseif b then
return
else
return
endif
вроде так должно работать
Старый 29.01.2011, 15:09
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Будем пробовать... спасибо за консультацию=)
Старый 29.01.2011, 15:14
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 07:17.