Pascal错误:直到预期其他发现

-1 pascal syntax-error

尝试编译"直到"预期发现"其他"时发生致命错误,似乎无法解决问题

......

   begin

divisor:= 2;
cont:= 0; 
write(i,':');

repeat

  if (i mod divisor = 0) then
     begin
write(' divisor ');
divisor:=succ(divisor);
cont:=succ(cont);
      end;

  else
divisor:=succ(divisor);

until (cont = 6) or (divisor>i div 2)

writeln();
    end;
end;
end. 
Run Code Online (Sandbox Code Playgroud)

Hau*_*man 5

问题是end;之前你有一个分号else.这基本上终止了if语句,因此else变为elseto repeat(显然无效).解决方法是删除分号后end;

请参阅此参考:http://wiki.freepascal.org/Else

固定:

  if (i mod divisor = 0) then
     begin
       write(' divisor ');
       cont:=succ(cont);
     end
  else
    divisor:=succ(divisor);
Run Code Online (Sandbox Code Playgroud)