![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Бред какойто твориться, проверяю одну и туже пеерменную в свичи и через ИФ, в свиче не проходит, в ИФ проходит.
Как такое может быть? trace("444"); и trace("eee"); должны отрабатывать обе или не одна! Отрабатывает только еее |
|
|||||
|
Цитата:
package { import flash.display.Sprite; public class Test extends Sprite { public function Test() { super(); var a:Object = "1"; var b:Object = 1; trace("a == b", (a == b)); trace("a === b", (a === b)); switch (a) { // в первую очередь сравниваем с числом и тут проверка не дает результата case 1: trace("a is int"); break; // а теперь сравниваем со строкой и проверка проходит case "1": trace("a is string"); break; default: trace("a is something from another universe"); } } } }
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Цитата:
Добавлено через 2 минуты ДА! Ковычки решили проблему))) спс. зы: А ИФу тоесть пофигу как сравнивать??? |
|
|||||
|
А switch это и есть ни что иное, как последовательность строгих if'ов. То есть
Это абсолютно одно и то же, что и if'у не "по фигу", он принимает в себя тот тип сравнения, который вы указываете. Указываете строгий === - получаете что число и строка это разные вещи, указываете нестрогий == - получаете что число и строка это одно и то же
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Понятно тоесть в ифе "==" и "===" а в свиче наличие и отсутствие кавычек. Запомню)
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
На самом деле, при использовании элемента массива в операторе switch необходимо явно привести его к нужному типу (вместо swicth(arr[i]) - писать swicth(int(arr[i])) или какой там тип должен быть).
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|