Pascal sintax错误,“&引用;预期但;否则";建立

Pascal sintax错误,“&引用;预期但;否则";建立,pascal,freepascal,Pascal,Freepascal,我是新编程的,所以请善待我。。。 我编译并得到了标题中提到的错误,代码如下 while n>1 do if n mod p= 0 then write(p); n:= n div p; else p:= p+1 end end. 我想知道“else”有什么不好的地方。你忘了在“then”之后加上“begin-end” 你需要这样做,以防你有一个以上的指示 while n>1 do

我是新编程的,所以请善待我。。。 我编译并得到了标题中提到的错误,代码如下

while n>1 do
    if n mod p= 0   then
            write(p);
            n:= n div p;
            else p:= p+1
    end
end. 
我想知道“else”有什么不好的地方。

你忘了在“then”之后加上“begin-end” 你需要这样做,以防你有一个以上的指示

while n>1 do
    if n mod p= 0   then
       Begin
            write(p);
            n:= n div p;
       End else p:= p+1
    end
end. 

除了缩进问题(这无关紧要),您的其他问题没有任何问题。但是你需要一个
位于其上方的行中。那么,在
p:=p+1之后是否需要一个结束后还需要输入分号,在除begin和procedures头之外的每行代码之后,需要输入分号,因为您忘记在n:=n div p之后输入分号,编译器没有意识到该行结束。所以它一直在运行,点击了else,然后困惑地发现它点击的是一个“else”而不是一个“;”,因为“else”在这行的末尾不是有效的语法。这就是它想告诉你的。我把分号放在n:=n div p之后,仍然给我相同的错误。谢谢,这解决了我的问题