Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как остановить выполнение других условий в блоке (http://www.flasher.ru/forum/showthread.php?t=213029)

nelco 19.06.2016 03:06

как остановить выполнение других условий в блоке
 
доброй ночи... есть код
Код AS1/AS2:

else { 
 
                                if (int(_combiPool[randomIndex]) == _dealSum * 2) { trace ("сгенерировать комбинацию XXY or YXX"); _wonSum = _dealSum * 2; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 8) { trace ("сгенерировать комбинацию XYX"); _wonSum = _dealSum * 8; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
}

необходимо, чтобы если сработал первый if(), то чтобы второй if уже не проверялся и не выполнялся... подскажите, пожалуйста, как это сделать правильно? пробовал break, return в конце первого if, но ошибки при компиляции выходят

undefined 19.06.2016 03:08

Код AS3:

if (int(_combiPool[randomIndex]) == _dealSum * 2) {
    trace ("сгенерировать комбинацию XXY or YXX");
    _wonSum = _dealSum * 2;
    makeWonCombi(_wonSum);
    _combiPool.splice(randomIndex, 1)
} else if (int(_combiPool[randomIndex]) == _dealSum * 8) {
    trace ("сгенерировать комбинацию XYX");
    _wonSum = _dealSum * 8;
    makeWonCombi(_wonSum);
    _combiPool.splice(randomIndex, 1);
}


nelco 19.06.2016 03:10

а если у меня этих if больше 2-х, то тоже будет работать, если везде напишу else if?

Код AS3:

 
if (int(_combiPool[randomIndex]) == _dealSum * 2) { trace ("сгенерировать комбинацию XXY or YXX"); _wonSum = _dealSum * 2; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 8) { trace ("сгенерировать комбинацию XYX"); _wonSum = _dealSum * 8; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 25) { trace ("сгенерировать комбинацию X0X or 0X0"); _wonSum = _dealSum * 25; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 50) { trace ("сгенерировать комбинацию 0XX or XX0"); _wonSum = _dealSum * 50; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 100) { trace ("сгенерировать комбинацию X00 or 00X"); _wonSum = _dealSum * 100; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 200) { trace ("сгенерировать комбинацию XXX"); _wonSum = _dealSum * 200; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 500) { trace ("сгенерировать комбинацию 777 or 555"); _wonSum = _dealSum * 500; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                if (int(_combiPool[randomIndex]) == _dealSum * 1000) { trace ("сгенерировать комбинацию 666 or 000"); _wonSum = _dealSum * 1000; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };

Добавлено через 16 минут
пишет ELSE IS UNEXPECTED, видимо, что эти if у меня уже и так в ELSE блоке?
Код AS3:

else { // если рэндомный элемент массива _combiPool не равен нулю
 
                                if (int(_combiPool[randomIndex]) == _dealSum * 2)
                                        { trace ("сгенерировать комбинацию XXY or YXX"); _wonSum = _dealSum * 2; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };
                                        else if (int(_combiPool[randomIndex]) == _dealSum * 8)
                                        { trace ("сгенерировать комбинацию XYX"); _wonSum = _dealSum * 8; makeWonCombi(_wonSum); _combiPool.splice(randomIndex, 1) };

Добавлено через 19 минут
нету какой-то встроенной команды для этого? или придётся вводить переменную внутри блока и менять её при выполнении любого if на true и потом проверять при следующих if эту переменную?

undefined 19.06.2016 03:38

Код AS3:

if (условие 1) {
    действие 1;
} else if (условие 2) {
    действие 2;
} else if (условие 3) {
    действие 3;
} else if (...) {
    ...
}

условий может быть сколько угодно.Он ругается на точку с запятой в конце первого условия т.к. считает что оно не относится ко всему, что идет дальше.
ПС:
Удобно так лепить все в одну строку?
Обычно условия для наглядности выделяют как написано выше тогда и путаницы меньше

nelco 19.06.2016 03:41

ok, понял... спасибо! :)


Часовой пояс GMT +4, время: 10:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.