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

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

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

Регистрация: Nov 2010
Сообщений: 21
По умолчанию Как в Swith/case сделать От и До?

Подскажите пожалуйста, как при помощи switch/case сделать что-то вроде:

Код AS3:
switch (name)
{
case name > 10:
	rnd = 15;
break;
 
case name > 50:
	rnd = 20;
break;
}
Т.е. чтобы каждый case был равен не одному числу, а целому интервалу чисел. Например, от 1 до 10, от 11 до 20 и т.д.
Ну не перечислять же все цифры подряд - 12,13,14,15...

Заранее спасибо за ответ.

P.S.:Только начинаю разбираться а AS3.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Проще взять if-else-if.
Код AS3:
if (name > ... && name < ...) ...
else if (name > 50) ...
Код AS3:
switch (name)
{
case name > 10:
	rnd = 15;
break;
 
case name > 50:
	rnd = 20;
break;
}
А это запись вообще неправильная.
__________________
тут я

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Можно воспользоваться конструкцией if else if:
Код AS3:
if (name >= 1 && name <= 10) {...}
else if (name > 10 && name <= 20) {...}
else if (name > 20 && name <= 30) {...}
Но что-то мне подсказывает, что есть менее копипастные способы.

Старый 28.11.2010, 15:23
cfanya вне форума Посмотреть профиль Отправить личное сообщение для cfanya Найти все сообщения от cfanya
  № 4  
Ответить с цитированием
cfanya

Регистрация: Nov 2010
Сообщений: 21
Цитата:
А это запись вообще неправильная.
Да, я знаю. Оно и не работает. Просто для примера привел.

Цитата:
Можно воспользоваться конструкцией if else if
Спасибо.

Цитата:
Но что-то мне подсказывает, что есть менее копипастные способы.
Вот их и ищу... Просто не хочется уж слишком растягивать программу по размеру.

Старый 28.11.2010, 17:04
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Сообщение от cfanya Посмотреть сообщение
Просто не хочется уж слишком растягивать программу по размеру.
Если использвать в каждом блоке только по одной строке, то if - else if можно писать без {}

Соответственно, такая конструкция будет ни чуть не больше конструкции с кейсами

Код AS3:
if  (name > 0 && name <=10) doSomethig();
else if (name > 10 && name <=50) doSomethingElse();

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Если интервал равномерный или есть закономерность, то можно вывести формулу.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Nov 2010
Сообщений: 21
Цитата:
Если интервал равномерный или есть закономерность, то можно вывести формулу.
Интервал равномерный. Вы не могли бы чуть-чуть поподробней, насчет формулы...

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от cfanya Посмотреть сообщение
Интервал равномерный. Вы не могли бы чуть-чуть поподробней, насчет формулы...
Могу, только дайте больше информации. Из первого поста не ясна закономерность.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.11.2010, 16:01
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 9  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
ну, если принципиально switch, то примерно так:

Код AS3:
switch(true){
case (name > 0 && name <=10):
//
break;
case (name > 10 && name <=50):
//
break;
}
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 28.11.2010, 16:53
cfanya вне форума Посмотреть профиль Отправить личное сообщение для cfanya Найти все сообщения от cfanya
  № 10  
Ответить с цитированием
cfanya

Регистрация: Nov 2010
Сообщений: 21
Цитата:
ну, если принципиально switch, то примерно так:

Код AS3:
switch(true){
case (name > 0 && name <=10):
//
}
В том то и дело, что так не работает.

Цитата:
Могу, только дайте больше информации. Из первого поста не ясна закономерность.
Вот:
Код AS3:
switch (time)
{
case 0: sTime = "Ночь"; break;
case 1: sTime = "Ночь"; break;
case 2: sTime = "Ночь"; break;
case 3: sTime = "Ночь"; break;
case 4: sTime = "Ночь"; break;
case 5: sTime = "Ночь"; break;
case 6: sTime = "Утро"; break;
case 7: sTime = "Утро"; break;
case 8: sTime = "Утро"; break;
case 9: sTime = "Утро"; break;
case 10: sTime = "День"; break;
case 11: sTime = "День"; break;
case 12: sTime = "День"; break;
case 13: sTime = "День"; break;
case 14: sTime = "День"; break;
case 15: sTime = "День"; break;
case 16: sTime = "День"; break;
case 17: sTime = "День"; break;
case 18: sTime = "Вечер"; break;
case 19: sTime = "Вечер"; break;
case 20: sTime = "Вечер"; break;
case 21: sTime = "Вечер"; break;
case 22: sTime = "Ночь"; break;
case 23: sTime = "Ночь"; break;
}


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

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

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


 


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


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