При просмотре я иногда сталкиваюсь с таким типом цикла:
i = begin
while ( i != end ) {    
   // ... do stuff
   if ( i == end-1 (the one-but-last element) ) {
      ... do other stuff
   }
   increment i
}
Затем я задаю вопрос: напишите ли вы это?
i = begin
mid = ( end - begin ) / 2 // (the middle element)
while ( i != end ) {    
   // ... do stuff
   if ( i > mid ) {
      ... do other stuff
   }
   increment i
}
По-моему, это бьет намерение написать цикл: вы зацикливаете, потому что для каждого из элементов есть что-то общее. Используя эту конструкцию, для некоторых элементов вы делаете что-то другое. Итак, я заключаю, вам нужен отдельный цикл для этих элементов:
i = begin
mid = ( end - begin ) / 2 //(the middle element)
while ( i != mid ) {    
   // ... do stuff
   increment i
}
while ( i != end ) {
   // ... do stuff
   // ... do other stuff
   increment i
}
Теперь я даже увидел question на SO о том, как написать if -clause в хорошем смысле... И мне стало грустно: что-то здесь не так.
Неужели я ошибаюсь? Если да, то что же хорошего в том, что загромождать тело цикла особыми случаями, о которых вы знаете заранее, во время кодирования?