|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2011
Сообщений: 31
|
Вопрос по сравнению в операторе Switch
В Колин Мук сказано, что: при сравнении результата выражения условноеВыражение со значениями выражений case используется оператор строго равенства.
switch (условноеВыражение) { case Выражение1: блокКода break; } Какой может быть результат у выражения условноеВыражение, если оно пока ни с чем не сравнивалось, и значения результата не false и ни true. И какие значения могут быть у выражий case. Толи тупо сравнивается значения двух выражений и потом составному выражению присваивается значение true или false, либо я чего-то не понимаю. Объясните пожалуйста. |
|
|||||
Что-то я ничего не понял...
var var1:uint = 5; switch (var1) { case 3: trace("var1 - это число 3"); break; case 4: trace("var1 - это число 4"); break; case 5: trace("var1 - это число 5"); break; default: trace("Ни один из вариантов не подходит"); } switch (var1) - проверяем переменную var1: ___case 3: - если var1 равно 3, выводим: "var1 - это число 3" _________break - прекращаем проверку. ___case 4: - если var1 равно 4, выводим: "var1 - это число 4" _________break - прекращаем проверку. ___case 5: - если var1 равно 5, выводим: "var1 - это число 5" _________break - прекращаем проверку. ___default: - если ни один из вариантов не подходит, то выводим: "Ни один из вариантов не подходит". При чем, здесь выполняется проверка строго равенства === , а не ==
__________________
Я мало чего умею, но зато хорошо умею учиться... Последний раз редактировалось HardCoder; 18.12.2011 в 02:27. |
|
|||||
Регистрация: Nov 2011
Сообщений: 31
|
вот я и пытаюсь просечь смысл фразы Мука...
|
|
|||||
Регистрация: Aug 2011
Сообщений: 19
|
http://help.adobe.com/ru_RU/FlashPla...trict_equality
Вообще условноеВыражение сравнивается (в том порядке, в каком вы написали) с Выражение1, только без типизации. Т.е. если будет так(взял код выше). То при этом выведется "Ни один из вариантов не подходит", т.к Строка "5" не равна числу 5. А если бы оператор switch сравнивал выражения с помощью ==. То строка преобразовалась бы в число, и тогда выполнялся тот блок кода, где у тебя было trace("var1 - это число 5"); |
|
|||||
Регистрация: Nov 2011
Сообщений: 31
|
Теперь все - почти понял, но остался последний маленький вопросик. Почему тогда из приведнный выше цитаты говорится, что сравнивается не значение условноеВыражение, а его результат... Это одно и то же? Результат и значение?
|
|
|||||
Регистрация: Nov 2011
Сообщений: 31
|
а если будет
, то здесь результат сразу 3? И в данном случае результат сразу является значением? |
|
|||||
да, именно так.
дополнительно могу сказать что если вы сделаете то вызовется функция у этого объекта один раз, то что она вернёт запомнится и потом будет сравниваться.
__________________
:) |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Отличие товарища Pronoobа от классических местных новичков в том, что он начал свое обучение не с создания MMORPG и даже не с автогонок, а кинулся в другую крайность, пытаясь сначала выучить все слова и правила языка по книге, а потом уже начать "говорить".
Пишите уже что-нибудь, делайте тесты! От этого копания в терминологии у Вас без практики мало что задержится в мозгу.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 00:49. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|