05:51
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
switch.Можно написать "case 0..10",а как сделать от 0 до ∞ ?
КрендельДата: Суббота, 11.08.2012, 10:48 | Сообщение # 1
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
switch. Можно написат "case 0..10", а как сделать до ∞ ?


生き死に

Сообщение отредактировал Крендель - Суббота, 11.08.2012, 10:50
zEscДата: Суббота, 11.08.2012, 11:20 | Сообщение # 2
Global Elite
Группа: Ангел Хранитель
Сообщений: 896
Награды: 20
Репутация: 856
Замечания: 0%
Статус:
как вариант использовать default


КрендельДата: Суббота, 11.08.2012, 11:20 | Сообщение # 3
Уверенный в себе
Группа: Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус:
хм. в моем случае помог "default"
но все равно интересно можно ли указать от 0 до бесконечности ?



生き死に
SatelliteДата: Суббота, 11.08.2012, 11:37 | Сообщение # 4
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
switch — цикл. А бесконечные циклы к добру никогда не приводили. Используй условный оператор if.
ZiGGiДата: Суббота, 11.08.2012, 12:00 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Quote (Крендель)
но все равно интересно можно ли указать от 0 до бесконечности ?

Можно так:
case 0..2147483647: {}
2147483647 - максимально большое число в Pawn.



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]


Сообщение отредактировал ZiGGi - Суббота, 11.08.2012, 12:01
KlebitДата: Суббота, 11.08.2012, 16:46 | Сообщение # 6
Уверенный в себе
Группа: Пользователи
Сообщений: 265
Награды: 0
Город: None
Репутация: -31
Замечания: 60%
Статус:
Quote (Satellite)
switch — цикл. А бесконечные циклы к добру никогда не приводили. Используй условный оператор if.

Такое ляпнуть, это мощно

Дикий_БиллиДата: Суббота, 11.08.2012, 16:51 | Сообщение # 7
Новенький
Группа: Пользователи
Сообщений: 48
Награды: 2
Город: 123123123
Репутация: 29
Замечания: 100%
Статус:
Quote (Klebit)
Такое ляпнуть, это мощно

Модерировано, свитч относиться к циклам!11

KlebitДата: Суббота, 11.08.2012, 16:54 | Сообщение # 8
Уверенный в себе
Группа: Пользователи
Сообщений: 265
Награды: 0
Город: None
Репутация: -31
Замечания: 60%
Статус:
Quote (Дикий_Билли)
Quote (Klebit)
Такое ляпнуть, это мощно

Модерировано, свитч относиться к циклам!11

омг, услышали от мудака какого то , теперь давай твердить. Ну если он говорит, что бесконечный циклы к хорошему не приведет, запусти его на 1 и на 2147483647, по его логике время выполнения будет разное

ZiGGiДата: Воскресенье, 12.08.2012, 22:11 | Сообщение # 9
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Quote (Дикий_Билли)
Модерировано, свитч относиться к циклам!11

Ты не прав, читай доки Pawn. В Pawn switch/case - это фактически if/else.



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
AlcoholikДата: Воскресенье, 12.08.2012, 23:28 | Сообщение # 10
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
Заинтересовало, зачем это надо)


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
SatelliteДата: Вторник, 09.10.2012, 23:39 | Сообщение # 11
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Quote (Klebit)
Такое ляпнуть, это мощно

Quote (Дикий_Билли)
Модерировано, свитч относиться к циклам!11


Объясните, почему if & else if с перебором диапазона значений будут работать быстрее, чем switch?



Сообщение отредактировал Satellite - Среда, 10.10.2012, 00:03
MorozzzkoДата: Среда, 10.10.2012, 00:15 | Сообщение # 12
Мастер джэдай
Группа: Продвинутые
Сообщений: 2179
Награды: 40
Город: Moscow
Репутация: 590
Замечания: 0%
Статус:
Quote (Satellite)
Объясните, почему if & else if с перебором диапазона значений будут работать быстрее, чем switch?

switch(a) {
case 5..10: {
}
}

эквивалентно
if(a == 5 || a == 6 || a == 7 || a == 8 ...

if(a >= 5 && a <= 10) - будет побыстрее и покрасивше



Главный программист в Malefic Entertainment.
AirKiteДата: Среда, 10.10.2012, 01:21 | Сообщение # 13
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Quote (Крендель)
switch. Можно написат "case 0..10", а как сделать до ∞ ?

Не в коем случае нельзя. Такое не было бы возможно скомпилировать.

И вообще зачем оно нужно? Услышал где то что switch работает быстрей? Так он работает быстрей только в умелых руках... Но нет же, вы и со switch умудряетесь извращаться.

Пример кривого использования:
Code

new a = 25000;
new timestart = GetTickCount();
for(new i; i < 1000; i++) {
   switch(a) {
    case 0..25000: {
     new a = 1; a = a + 1;
    }
   }
}
printf("Switch Time: %d ms", GetTickCount()-timestart);
timestart = GetTickCount();
for(new i; i < 1000; i++) {
   if(a >= 0 && a <= 25000) {
    new a = 1; a = a + 1;
   }
}
printf("IF Time: %d ms", GetTickCount()-timestart);

Вывод:
Code

Switch Time: 159 ms
IF Time: 1 ms


Quote (ZiGGi)
Можно так: case 0..2147483647: {} 2147483647 - максимально большое число в Pawn.

Удачи в компиляции crazy

Quote (Satellite)
Объясните, почему if & else if с перебором диапазона значений будут работать быстрее, чем switch?

Кто тебе такое сказал? switch будет работать быстрей в случае с перебором. Но Switch не позволяет ставить условия "меньше, больше" и т.д. т.е. в случаях огромных диапазонов чисел, лучше использовать if(a >= 0 && a <= 999999999) (это не перебор) нежели case 0..999999999. В принципе Morozzzko уже объяснил в краце чему диапазон в case эквивалентен.



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record


Сообщение отредактировал AirKite - Среда, 10.10.2012, 01:23
SatelliteДата: Суббота, 13.10.2012, 21:06 | Сообщение # 14
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Quote (AirKite)
Кто тебе такое сказал? switch будет работать быстрей в случае с перебором. Но Switch не позволяет ставить условия "меньше, больше" и т.д. т.е. в случаях огромных диапазонов чисел, лучше использовать if(a >= 0 && a <= 999999999) (это не перебор) нежели case 0..999999999. В принципе Morozzzko уже объяснил в краце чему диапазон в case эквивалентен.

Я это спросил в ответ на «switch не цикл!111», ибо если бы это был не цикл, то почему он медленней при 0..999999...?. Я знаю, что и почему быстрее. На павно.ру это обсуждалось. )
Quote (AirKite)
switch будет работать быстрей в случае с перебором.

http://pawno.ru/showthr....t585648
Вы не так поняли мой вопрос.



Сообщение отредактировал Satellite - Суббота, 13.10.2012, 21:12
AirKiteДата: Суббота, 13.10.2012, 22:14 | Сообщение # 15
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Satellite, ок, давай по полочкам :)
Я тебе также скажу, что switch это не цикл.

Quote (Satellite)
Я это спросил в ответ на «switch не цикл!111», ибо если бы это был не цикл, то почему он медленней при 0..999999...?

switch работает быстрее if. проверенно и доказано не раз, потому что работает иначе чем if.
case 0..999999 это быстрее чем 1000000 if.

Quote (Satellite)
Вы не так поняли мой вопрос.

В тесте 2501(case) и 10(if). т.е. case больше в 25 раз.
Quote

Test Switch : 19 (2501)
Test If : 2 (10)

Switch : 19/2501=0,00759
If :2/10=0,2

Ещё раз более доходчиво. У switch нет в case диапазонов... если задал case 0..999 то компилятор просто клонирует case, т.е. тоже самое что и: case 0:, case 1:, case 2:, case 3:, case 4:, case 5:, case 6:, case 7:, case 8: ... case 998:, case 999:. (на уровне кода). Если уж и обзывать switch не своим именем, то можно было бы назвать его макросом. Но никак не циклом.



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua