Re[2]: Необычный цикл
От: Eugeny__ Украина  
Дата: 18.05.06 13:05
Оценка:
Здравствуйте, Sonic, Вы писали:

S>Здравствуйте, trump-card, Вы писали:


S>Был реальный случай, по фирме в рассылке ходил этот перл


S>int i = 2;


S>if ( i == 1 )

S> .........
S>if ( i == 2 )
S> .........

S>между обьявлением переменной и if-ом ничего не было.


Можно предволожить, что это хреново реализованная опция компиляции (то есть перед компиляцией меняешь число — и получаешь другую логику)
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[4]: Необычный цикл
От: serge_levin Россия  
Дата: 18.05.06 13:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А вот вариант

А>ParentClass *cl[4] = {m_pChild0, m_pChild1, m_pChild2, m_pChild3};
А>for( int i=0; i<4; i++ )
А>cl[i]->peration (...);
А>дествительно лучше смотрится. Че то мне массивы в голову не приходили

Ну и для полноты картины, в случае C++ используем такою конструкцию

for ( int i = 0; i < sizeof ( cl ) / sizeof ( cl [ 0 ] ); i++ )
cl[ i ]->operation ( ... );

И сколько надо, столько и добавляем Child'ов в массив.
Re: Необычный цикл
От: Rosigma Украина http://rosigma.com/
Дата: 18.05.06 13:44
Оценка:
Это надежда на то, что компилятор (оптимизатор) распараллелит и оптимизирует выполнение действий 1, 2 и 3.
Roman Yakhymets, http://rosigma.com/, All inside you, ICQ #214741007
Re[5]: Необычный цикл
От: AlexWlad  
Дата: 18.05.06 14:51
Оценка:
Здравствуйте, serge_levin, Вы писали:

_>Здравствуйте, Аноним, Вы писали:


А>>А вот вариант

А>>ParentClass *cl[4] = {m_pChild0, m_pChild1, m_pChild2, m_pChild3};
А>>for( int i=0; i<4; i++ )
А>>cl[i]->peration (...);
А>>дествительно лучше смотрится. Че то мне массивы в голову не приходили

_>Ну и для полноты картины, в случае C++ используем такою конструкцию


_>for ( int i = 0; i < sizeof ( cl ) / sizeof ( cl [ 0 ] ); i++ )

_> cl[ i ]->operation ( ... );

_>И сколько надо, столько и добавляем Child'ов в массив.


У меня давно сложилось впечатление что большинство Си-шников страдают манией превращения простых, удобочитаемых текстов программ в некие подобия математических формул повышенной "закрученности", благо средства языка позволяют. А, скажем, месяца через два приходится доооолго смотреть в 1-2 строчки "упакованного" кода и вспоминать: Что я хотел "ЭТИМ" сказать/сделать?
Re[3]: Необычный цикл
От: algol Россия about:blank
Дата: 18.05.06 15:29
Оценка:
Здравствуйте, Eugeny__, Вы писали:

S>>int i = 2;


S>>if ( i == 1 )

S>> .........
S>>if ( i == 2 )
S>> .........

E__>Можно предволожить, что это хреново реализованная опция компиляции (то есть перед компиляцией меняешь число — и получаешь другую логику)


Можно предположить, что в первом if недописанный код. Видел такое в реальном проекте. Был замысел вызывать одну функцию с разными параметрами из двух пунктов меню. Второй режим до конца реализован еще не был, и для релиза временно была вставлена строчка с принудительной записью значения первого режима в переменную.
Re[6]: Необычный цикл
От: Анатолий Широков СССР  
Дата: 18.05.06 17:44
Оценка:
AW>У меня давно сложилось впечатление что большинство Си-шников страдают манией превращения простых, удобочитаемых текстов программ в некие подобия математических формул повышенной "закрученности", благо средства языка позволяют. А, скажем, месяца через два приходится доооолго смотреть в 1-2 строчки "упакованного" кода и вспоминать: Что я хотел "ЭТИМ" сказать/сделать?

Нет, просто "Си-шники" за изящество и поэтому их сложно понять VB-программистам. Или Вы не VB-программист или просто уже не помните, что хотели этим сказать?
Re[3]: Необычный цикл
От: PPA Россия http://flylinkdc.blogspot.com/
Дата: 18.05.06 17:48
Оценка:
Здравствуйте, Блудов Павел, Вы писали:
PPA>> В Oracle в таблице dual _всегда_ одна запись!

БП>Мимо кассы. В x_seq.nextval, скорее всего одна запись — если это последовательность.


Естесвенно, что это последовательность

БП> Что из приведённого очевидно, но не доказано.

БП>А в SELECT ... FROM DUAL будет столько записай, сколько нужно. Например, если x_seq.nextval это функция, возвращающая массив.

выборка из dual без where (или connect by) всегда вертает 1 запись.
...а функции возвращающие массив в оракле зовутся не так
выборка должна быть вида:
select * from TABLE(cast(F(1) as T_X))
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Необычный цикл
От: U-4X-96  
Дата: 18.05.06 21:33
Оценка:
Здравствуйте, trump-card, Вы писали:

TC>Онаружил такой код в чужой компоненте:


TC>
TC>  for(j = 0; j < 3; j++)
TC>  {
TC>    switch(j)
TC>    {
TC>       case 0:
TC>             // Действие 1
TC>             break;
TC>       case 1:
TC>             // Действие 2
TC>             break;
TC>       case 2:
TC>             // Действие 3
TC>             break;
TC>    }
TC>  }
TC>

ИМХО: ели внутри Действие n переманная j изменяется, то это смахивает на автомат для распознования регулярных выражений в котором состояния в большенстве случаев увеличивается на один. Автор был порядочым леньтяем и изврощенсом.

Re[2]: Необычный цикл
От: mcf  
Дата: 18.05.06 23:11
Оценка:
Здравствуйте, U-4X-96, Вы писали:

U49>Здравствуйте, trump-card, Вы писали:


TC>>Онаружил такой код в чужой компоненте:


TC>>
TC>>  for(j = 0; j < 3; j++)
TC>>  {
TC>>    switch(j)
TC>>    {
TC>>       case 0:
TC>>             // Действие 1
TC>>             break;
TC>>       case 1:
TC>>             // Действие 2
TC>>             break;
TC>>       case 2:
TC>>             // Действие 3
TC>>             break;
TC>>    }
TC>>  }
TC>>

U49>ИМХО: ели внутри Действие n переманная j изменяется, то это смахивает на автомат для распознования регулярных выражений в котором состояния в большенстве случаев увеличивается на один. Автор был порядочым леньтяем и изврощенсом.

U49>


Я тоже подумал об этом.
Если j меняется (а меняться оно имеет право как угодно), то такой цикл вполне оправдан.
Re[3]: Необычный цикл
От: U-4X-96  
Дата: 19.05.06 19:48
Оценка:
Здравствуйте, mcf, Вы писали:
mcf>Я тоже подумал об этом.
mcf>Если j меняется (а меняться оно имеет право как угодно), то такой цикл вполне оправдан.

Нефига он не оправдан, правильно так:
int j = 0
while(j!=3)
{
   switch(j)
   {
      case 0:
            // Действие 1
            break;
      case 1:
            // Действие 2
            break;
      case 2:
            // Действие 3
            break;
   }
}

но верятно состояния чаще всего увеличиволось на один, и автор леньтяй решил с оптимизировать, чтобы было меньше строк j=bla_bla

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.