> -- Александр Ильин писал(а):
> Мне кажется, тут речь идёт о потенциальной проблеме забытого Exit. Аналогичной проблемой страдает Сишный switch: забыли break - "провалитесь" в следующий блок.

Именно потому я пишу выравнивая всё и вся.
В моей конструкции что-то забытое бросится немедленно в глаза.
## Код:
```
if (…) then Exita(...);
  if (…) then Exitb(...);
  if (…) then Exitc(...);
  if (…) then Exitd(...);
  Result := e(...);
```
Против
## Код:
```
if (…) then Exit(a(...);
  if (…) then Exit(b(...);
  if (…) then c(...);
  if (…) then Exitd(...);
  Result := e(...);
```


В вашей, запросто можно было бы упустить некоторое условие.
Приворжу исходный код Губанова:
## Код:
```
void f (...)
{
  if (...)
  {
     a(...);
  }
  else if (...)
  {
     b(...);
  }
  else if (...)
  {
     c(...);
  }
  else if (...)
  {
     d(...);
  }
  else if (...)
  {
     e(...);
  }
}
```
против
## Код:
```
void f (...)
{
  if (...)
  {
     a(...);
  }
  else if (...)
  {
     b(...);
  }
  else if (...)
  {
     c(...);
  }
  else if (...)
  {
     e(...);
  }
}
```

Вот и ищите, что же было упущено!!!

Кстати, кто-нибудь заметил, что в вашей (оппонентов) конструкциибудет выполнен 0 или 1 блок?
Т.е. вы уже сделали ошибку.

Позволил себе сделать выделения в вашем тексте.
> -- Илья Ермаков писал(а):
> Когда я вижу if...elsif..elsif..., я знаю, что  только  своего , какого - определяется первой истинной охраной. И это знаю даже не я, а мои автоматические ассоциации при чтении.
Вы забыли поставить последнее else.

Вот и все ваши автоматические ассоциации при чтении.

> -- Александр Ильин писал(а):
> Илья, респект! Жму руку. : ) Сам тоже обожаю такие прозрения, когда они у меня бывают.
Веселые вы ребята!
А что, подмену задачи никто не заметил?
Принципиальную подмену.
Вы стали обсуждать не то, что я написал.
И ошибку?

Оно и понятно, в глубоком лесу этих if ...else... if... else так легко заплутать.