Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Выйти из if в конструкцию else (http://www.flasher.ru/forum/showthread.php?t=171846)

Universe 25.11.2011 17:56

Выйти из if в конструкцию else
 
Допустим у нас есть обычный if else
Существует ли способ написать в if вложенную if конструкцию при выполнении которой мы переходим в else? Чтото на подобии break в цикле:)
Или только выносить то что в else в отдельную функцию и обращаться уже к ней?

bav 25.11.2011 18:09

Насколько мне известно, "Чтото на подобии break в цикле" для if else не существует.

Genzo 25.11.2011 18:11

Не совсем то, но похоже :
Код AS3:

var a:uint = 0;
                label1 : if(true){
                    if(a == 0)
                    {
                        a = 1;
                        break label1;
                    }
                    trace(true)
                }
                label2: if(a == 1)
                {
                    trace(false);
                }


GBee 25.11.2011 18:11

Цитата:

Или только выносить то что в else в отдельную функцию и обращаться уже к ней?
Ага, либо логику ифа изменить.

Цитата:

Чтото на подобии break в цикле
Это вряд ли можно назвать подобием.

Добавлено через 6 минут
Цитата:

Не совсем то, но похоже :
я про это и забыл, был не прав, но использовать такое бы не стал.

MXPain 25.11.2011 18:22

Universe а зачем вообще? это же противоречит логике)))

Universe 25.11.2011 18:29

мда, вот такая у меня логика противоречивая))))
Наверное переделаю саму логику)

goodguy 25.11.2011 18:31

Цитата:

Universe а зачем вообще? это же противоречит логике)))
+1. Даже не представляю как это может реально пригодиться

expl 26.11.2011 16:34

Цитата:

Сообщение от Genzo (Сообщение 1048222)
Не совсем то, но похоже :
Код AS3:

var a:uint = 0;
                label1 : if(true){
                    if(a == 0)
                    {
                        a = 1;
                        break label1;
                    }
                    trace(true)
                }
                label2: if(a == 1)
                {
                    trace(false);
                }


Ни че себе, оно компилируется и даже вроде как работает.

Вообще есть более красивый "не совсем тот" способ (как бы не сам Стив Макконел его рекомендовал):
Код AS3:

do
{
    if (someCondition)
    {
      if(someSubcondition)
      {
          ...
          break;
      }
      ...
    }
    ...
}
while(false);
if (!someCondition)
{
    ...
}

Редко, но когда не резон разбивать функцию на более мелкие (или городить булевы флаги) - использую.


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

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