![]() |
Как работает switch?
Есть во флэше такая штука как switch:
switch (number) { case exp1: case exp2: default: } Как вместо expN поставить не одно значение, а несколько а) перечислением, н-р 1,2,3 б) все значения из определенного интервала , н-р 4-8 (т.е. 4, 5, 6, 7, 8) В справке FlashMx этого нет, в имеющейся литературе тоже. А ведь это одна из основ программирования. Вот что у меня было: switch (k) { case 1-9 : func1(); break; case 10-99: func2(); break; default : func3(); } } На деле же работает только для чисел не превышающих 10, все остальное принимает за default. Если default заменить на case 100-999 то невыполняется ничего! пустота да и только! Вопрос: Как заставить его видеть интервал??? ps Я знаю что в данном примере можно легко обойтись и без switch'а. Вопрос этот касается только самого действия switch, а не о том, как мне написать программу. Спасибо! |
Хехе ... ну и основы программирования у вас :)
Не работает ваш странный свитч (в первы раз вижу такой синтаксис) - иф/элс иф/элс не значительно дольше написать. И понятнее кстати :o if ((k > 1)&&(k < 10)) func1; else if ((k > 10)&&(k < 20)) func2(); else func3(); Ах да, вы только спрашиваете про свитч... Ну дык ВЕЗДЕ можно обойтись без него! |
Уважаемый "k... как вас там?"
значит ты тоже не знаешь как работает свитч.... |
В таких случаях, когда нам нужен интервал значений, то лучше присвоить каждому интервалу свою переменную, и потом, в switch обращаться именно к этой переменной.
Пример: Сделай динамическое поле с var "txt", и положи во фрейм следующий код. Код:
function rand(){ |
Уважаемый как вас там,
практически в любом языке программирования Ваш Код:
case 1-9 :Код:
case -8 :Попробуй-ка Код:
num = -9; |
Уважаемый sergwizard
спасибо за полезный совет. Я не замедлил применить его на практике, немного изменив и сократив код. Код:
function rand(){Ваш пример я тоже применил на практике и наглядно убедился что 1-10 будет -9, а 20-30 будет -10. У меня нет слов чтоб описать мой восторг! ТЕМ НЕ МЕНЕЕ (мой грустный вывод) Писать надо case <значение> Не "интервал", не "значения", а одно единственное "значение". |
Еще как вариант - не использовать break;
т.е. switch (k) { case 1 : case 2 : case 3 : case 4 : case 5 : case 6 : case 7 : case 8 : func1(); break; ... и т.д. default : func3(); } |
Я очень рад что вы пришли к противоричивой мысле о том что даже Вы не знаете как работает свитч.
Позвольте мне еще немного сократить Ваш с sergiwizard код что бы доказать преимущество учиться программировать перед предумыванием своего *личного* синтаксиса к языкам программирования Код:
function rand() { |
Цитата:
2FlasFan можно узнать название хотя бы одного языка программирования, где ваша конструкция вида "case 1-9 : func1(); break;" даст корректный результат. было бы любопытно узнать об этой основе программирования побольше. а во флэше свитч предназначен только для того чтобы не писать много-много ифов слитно. и больше ни для чего. |
фантазия в программировании приводит только к победе ))
Код:
function rand() { |
| Часовой пояс GMT +4, время: 11:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.