Глюк в конструкции IF ?

 
Глюк в конструкции IF ?

Может чего я не понимаю, но в конструкции

IF ... Then
Begin
...
End;
Else
Begin
...
End;

тело следующее за else будет обрабатываться всегда (не зависимо от переключателя if ) ?

PS: If .. then .. else Begin .. end; работает OK.
 
Да, может перейдете на С-шные скобки ????

А то эта паскалевская байда уже ...
 
не совсем понятен вопрос.
как Вы получили этот глюк? можно текст эксперта посмотреть?
указанная конструкция не пройдёт компиляцию из-за точки с запятой перед else. компилятор скажет, что ошибка номер 23 alone else without if-then statement
 
пожалуйста
вот цитата со страницы https://www.metaquotes.net/en/metatrader5/algorithmic-trading как раз из пункта 4.2.3 Инструкция условия IF-THEN
===
Операторные скобки Begin - End могут быть заменены фигурными скобками { }.
===
 
Ошибка компилляции ..
Текст компилляцию проходил, хотя ";" действительно не было.

Код пожалуйста (еще раз перепроверил):

if abs(S_abs) < Max(S_abs_1,S_abs_2)*4 OR S_abs_1=0 then Begin
SetIndexValue2(shift, S_abs);
countS=1+countS;
ENd;
else Begin
SetIndexValue(shift, 0.5*abs(S_abs)/S_abs);
countS=1;
end;
cntB=cntB+1
 
а вот точка с запятой между End и Else вызовет ошибку компиляции
 
Анекдот
Есть такой анекдот:

Новому русскому на разбивают сзади машину. Тот выскакивает из машины, подлетает к виновнику и орёт:

- Ты-ы хто-о-о ?!
- П-п-писатель ...
-Какой нахер писатель ?!
-П-про-з-заик ...
-Про каких таких, в пи..ду, заек ????!!!!

Вот так и у вас, я спрашиваю про проблему с компайлером, а вы советуете вызвать ошибку. <>Еще раз привожу сомнительный код. присутствие , либо отсутствие т.з. - ошибку не вызывает:



/*[[
Name := ГЛЮК
Author := Прохожий
Link := http://localhost/
]]*/

Variable : S_abs(0),countS(0),cntbars(0),shift(0);

For shift = 2 DownTo 0

Begin
if abs(S_abs) < 0 then Begin
countS=1+countS;
end;
else Begin
countS=1;
end;
cntBars=cntBars+1;
End;



PS: Забыл добавить что код для простоты понимания лишен многоих строк и является бессысленным.

 
так мы об этом и просили!
потому что отдельно взятый кусок кода, но используемый в другом контексте, генерирует ошибку.
будем разбираться.
 
исправили
Причина обращения: