Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: While + switch + brek

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: выход из цикла
ekkl
Отправлено: 02 Ноября, 2013 - 21:52:31
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Извините, если я не сумел найти. Думаю не стоит создавать новую тему для данного вопроса.
Сразу скажу, реализация на Node.js
Итак, если цикл While в нём switch. Есть условие в switch, при котором нужно выйти из While. Break, конечно выходит из switch. С метками не помогает, насколько я понял, прыжок вперед невозможен.
Рассматриваю реализацию через throw
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function compile(file) {
  3.         try{
  4.                 JQL = NewJQL(file);
  5.                 while (JQL.next()!==false)      {
  6.                         if (JQL.is_line()) {
  7.                                 switch (true)
  8.                                 {
  9.                                 case (JQL.test(/^\s*\/\//)):
  10.                                         debug ('comment detect:' + JQL.__line);
  11.                                         JQL.pushblank();
  12.                                         break;
  13.                                 case (JQL.test(/^\s+/)):
  14.                                         debug('Column detect: ' + JQL.__line);
  15.                                         //JQL.push(JQL.getblank(), true);
  16.                                         process_column();
  17.                                         break;
  18.                                 case(JQL.is_endtable()):
  19.                                         jql_close();
  20.                        
  21.                                 //NO break!! This lines must be run for two conditions!!!
  22.                                 case(JQL.test(/^[a-zA-Z]/)):
  23.                                         debug('Begin table detect: '.bold + JQL.table().bold);
  24.                                         jql_create();
  25.                                         JQL.push('  id int (11) unsigned NOT NULL AUTO_INCRENENT,');
  26.                                 }
  27.                         }
  28.                 }
  29.         }      
  30.         catch(e)
  31.         {
  32.                 JQL.push('// ' + e);
  33.                 console.log(e);
  34.         }
  35.         finally {
  36.                 jql_close();
  37.                 savedata(file);
  38.         }
  39. }

Может так лучше? Если нет, подскажите как.
ПС. выход должен быть в случае Фальзе некоторых функций jql_create();process_column();jql_close();
 
 Top
OrmaJever
Отправлено: 02 Ноября, 2013 - 21:59:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




ekkl пишет:
Рассматриваю реализацию через throw

Рассмотрели, поддержали, согласны. В данном случает throw уместен.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
nerv
Отправлено: 03 Ноября, 2013 - 00:05:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




убрать ненужный switch

(Отредактировано автором: 03 Ноября, 2013 - 00:07:21)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
Champion Супермодератор
Отправлено: 03 Ноября, 2013 - 11:23:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




А с меткой почему не работает?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB