Pascal 帕斯卡,can';不要让别人工作(初学者)

Pascal 帕斯卡,can';不要让别人工作(初学者),pascal,Pascal,我试图在我的代码中使用Else语句,但我无法找出正确的sintaxe。这个错误在哪里?如果我添加注释,“Else”行代码编译得很好 Procedure im_dumb; begin If (1 > 2) Then begin AddToDebugJournal('if'); end; else begin AddToDebugJournal('else'); end; end. Program New; begin im_dumb; end. 不要在“else”前面加分号。这是

我试图在我的代码中使用Else语句,但我无法找出正确的sintaxe。这个错误在哪里?如果我添加注释,“Else”行代码编译得很好

Procedure im_dumb;
begin
If (1 > 2) Then
begin
AddToDebugJournal('if');
end;

else

begin
AddToDebugJournal('else');
end;
end.


Program New;
begin
im_dumb; 
end.

不要在“else”前面加分号。这是帕斯卡减轻其他悬而未决的方式。

在帕斯卡的逻辑中,分号分隔“语句”,而在C中终止它们

if-then-else构造的语法为

  if expression then instruction [ else instruction ]
所以分号不应该出现在
else
之前


参考您最喜欢的语法铁路图

else
之前不要使用分号。使用
begin..end
(包括
else
)时有一个提示应该会有所帮助。你的代码太糟糕了,我建议你仔细阅读那篇教程。如果发布的示例不是你的原始代码,它就不属于这里。除非您发布代码,否则不要要求我们调试代码中的问题。为你的问题编写BS代码可以改变或隐藏实际问题(这就是你在这里发布的垃圾所做的),这是浪费我们和你的时间。关于代码的问题需要代码。请在今后记住这一点;如果你不这样做,你可能会在这里有一个很短的未来。你的原始代码场外是无关的。有意义的是张贴在这里的代码。你说过我发布的代码不是我的,所以这个问题在这里没有演示,但是请浪费你的时间在我发布的垃圾中查找问题。这在这里是不能接受的。这里一个合理的结束原因是要求我们调试代码中的问题,并且未能发布代码的实际相关部分。同样,如果您希望我们帮助您解决代码问题,您必须发布代码。@KenWhite谢谢,我下次会这样做。谢谢,在我从前面的“end”中删除了semi-collon之后,我的代码就开始工作了:)separator参数并没有真正解释为什么before-else是唯一具有特殊意义的地方。与end之前的最后一条语句相反,分号将“if condition then instruction1”部分(这是一条完全有效的指令)与下面的(预期的)指令分开。“else指令2”不是有效的指令。