Ошибка Syntax error, ";" expected but "ELSE" found

var
m: integer;
n: integer;
x: integer;
begin
m:= 4;
n:= 7;
x:= 0;
while true do
if m <> n then
    begin
        if m > n then
            begin
                m:= m - n;
                x:= x + 1;
            end
            else 
            begin
                n:= n - m;
                x:= x + 1;
            end;
            else writeln(x);
            
end.

Этот код выдаёт ошибку. Кто-то поможет?

Перед else не нужен ;.

Убрал “;”, но всё равно ошибка
end
else writeln(x);

Два else подряд это что-то бессмысленное.
else срабатывает когда не сработало (получилось false) условие в if.

перед else еще один end надо.

end; end
            else writeln(x);

Капец, спасибо, помогло. Благодарю за ответ.

пожалуйста. А проблема в том, что не хотите/забыли о контроле begin/end и форматировать код )

А, да.
Форматировать код надо нормально, чтобы сразу видно было. :slight_smile:

Обычно современные редакторы кода делают это автоматически по мере написания и/или имеют кнопку переформатирования. Или например https://pak.lebah.web.id/jcf.cgi

  while true do
    if m <> n then
    begin
      if m > n then
      begin
        m := m - n;
        x := x + 1;
      end
      else
      begin
        n := n - m;
        x := x + 1;
      end;
    end
    else
      writeln(x);