Форум 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 внутри switch...case. Будет ли работать? (http://www.flasher.ru/forum/showthread.php?t=134306)

dump13 25.12.2009 23:59

Условие if...else внутри switch...case. Будет ли работать?
 
Здравствуйте, хочется спросить у тех, кто знает наверняка, потому что самому тестить ну очень уж лень. Будет ли корректно работать следующий кусок:
Код AS3:

switch (action:int, a:int, b:int) {
        case 0:
                doSomething ();
                break;
        case 1:
                if (a<b) {doSomething (1);}
                else    {doSomething (2);}                // вот это место
                break;
        case 2:
                break;
}

Просто помню, что у меня когда-то с этим уже встречался, но была ли причина именно в этом?

wvxvw 26.12.2009 00:04

Ну так вы же уже тест написали - осталось только на педаль надавить :)

VVall 26.12.2009 00:11

Условие внутри switch работать конечно-же будет. Но ваш код в текущем виде нерабочий.

dump13 26.12.2009 00:15

wvxvw: Блин, да там просто еще до самой педали-то далеко, пара недописанных классов как-никак... :)

VVall: Спс, поверю на слово :)

dimarik 26.12.2009 00:44

Код AS3:

switch statement

Цитата:

Приводит к передаче управления одной из нескольких инструкций в зависимости от значения выражения

dump13 26.12.2009 00:59

Конечно же, это опечатка была. Вот так правильно:
Код AS3:

public function fn (action:int, a:int, b:int):void {
        switch (action) {
                case 0:
                        doSomething ();
                        break;
                case 1:
                        if (a<b) {doSomething (1);}
                        else    {doSomething (2);}                // вот это место
                        break;
                case 2:
                        break;
        }
}


wvxvw 26.12.2009 01:01

Цитата:

Сообщение от dump13 (Сообщение 875331)
wvxvw: Блин, да там просто еще до самой педали-то далеко, пара недописанных классов как-никак... :)

VVall: Спс, поверю на слово :)

Да не, там фишка не в этом - посмотрите на условие switch'а.

dimarik 26.12.2009 01:30

Код AS3:

var a:Number = 1;
var b:Number = 10;
 
switch(a, b) {
        case 1:
                trace('Как обычно');
                break;
 
        case 10:
                trace('Ни фига себе! b сработало!');
                break;
 
        default:
                trace('Тихо...');
}


random13 27.12.2009 16:50

Цитата:

Сообщение от dimarik (Сообщение 875352)
Код AS3:

var a:Number = 1;
var b:Number = 10;
 
switch(a, b) {
        case 1:
                trace('Как обычно');
                break;
 
        case 10:
                trace('Ни фига себе! b сработало!');
                break;
 
        default:
                trace('Тихо...');
}


а разве можна в два условия писать, давайте тогда далее еще и так
Код AS3:

if(a,b)


wvxvw 27.12.2009 19:54

это не 2 условия - запятая - это просто инструкция типа: "посчитали ? - идем дальше"
т.е.:
Код AS3:

var a:int;
var b:int;
a++, b++;
trace(a, b); // 1, 1

вполне себе валидное выражение


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

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