Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.12.2011, 01:54
Pronoob вне форума Посмотреть профиль Отправить личное сообщение для Pronoob Найти все сообщения от Pronoob
  № 1  
Ответить с цитированием
Pronoob

Регистрация: Nov 2011
Сообщений: 31
По умолчанию Вопрос по сравнению в операторе Switch

В Колин Мук сказано, что: при сравнении результата выражения условноеВыражение со значениями выражений case используется оператор строго равенства.

switch (условноеВыражение) {
case Выражение1:
блокКода
break;
}

Какой может быть результат у выражения условноеВыражение, если оно пока ни с чем не сравнивалось, и значения результата не false и ни true.
И какие значения могут быть у выражий case.

Толи тупо сравнивается значения двух выражений и потом составному выражению присваивается значение true или false, либо я чего-то не понимаю. Объясните пожалуйста.

Старый 18.12.2011, 02:18
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 2  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Что-то я ничего не понял...
Код AS3:
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.
Старый 18.12.2011, 03:23
Pronoob вне форума Посмотреть профиль Отправить личное сообщение для Pronoob Найти все сообщения от Pronoob
  № 3  
Ответить с цитированием
Pronoob

Регистрация: Nov 2011
Сообщений: 31
вот я и пытаюсь просечь смысл фразы Мука...

Старый 18.12.2011, 08:14
thirst вне форума Посмотреть профиль Отправить личное сообщение для thirst Найти все сообщения от thirst
  № 4  
Ответить с цитированием
thirst

Регистрация: Aug 2011
Сообщений: 19
http://help.adobe.com/ru_RU/FlashPla...trict_equality

Вообще условноеВыражение сравнивается (в том порядке, в каком вы написали) с Выражение1, только без типизации. Т.е. если будет так(взял код выше).
Код AS3:
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("Ни один из вариантов не подходит");
}
}
То при этом выведется "Ни один из вариантов не подходит", т.к Строка "5" не равна числу 5. А если бы оператор switch сравнивал выражения с помощью ==. То строка преобразовалась бы в число, и тогда выполнялся тот блок кода, где у тебя было trace("var1 - это число 5");

Старый 18.12.2011, 15:41
Pronoob вне форума Посмотреть профиль Отправить личное сообщение для Pronoob Найти все сообщения от Pronoob
  № 5  
Ответить с цитированием
Pronoob

Регистрация: Nov 2011
Сообщений: 31
Теперь все - почти понял, но остался последний маленький вопросик. Почему тогда из приведнный выше цитаты говорится, что сравнивается не значение условноеВыражение, а его результат... Это одно и то же? Результат и значение?

Старый 18.12.2011, 15:53
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 6  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
вы можете написать
Код AS3:
switch (2+3) {
и сначала будет вычислено 2+3, а потом результат уже будет сравниваться.
__________________
:)

Старый 18.12.2011, 15:58
Pronoob вне форума Посмотреть профиль Отправить личное сообщение для Pronoob Найти все сообщения от Pronoob
  № 7  
Ответить с цитированием
Pronoob

Регистрация: Nov 2011
Сообщений: 31
а если будет
Код AS3:
switch (3) {
,

то здесь результат сразу 3? И в данном случае результат сразу является значением?

Старый 18.12.2011, 16:11
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 8  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
да, именно так.
дополнительно могу сказать что если вы сделаете
Код AS3:
switch (someObject.someFunction()) {
то вызовется функция у этого объекта один раз, то что она вернёт запомнится и потом будет сравниваться.
__________________
:)

Старый 18.12.2011, 17:50
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 9  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
то здесь результат сразу 3? И в данном случае результат сразу является значением?
По-моему это должно быть очевидно даже для новичка

Старый 18.12.2011, 19:15
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Отличие товарища Pronoobа от классических местных новичков в том, что он начал свое обучение не с создания MMORPG и даже не с автогонок, а кинулся в другую крайность, пытаясь сначала выучить все слова и правила языка по книге, а потом уже начать "говорить".
Пишите уже что-нибудь, делайте тесты! От этого копания в терминологии у Вас без практики мало что задержится в мозгу.
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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