首页 > 解决方案 > 意外标记附近的 Pascal 语法错误

问题描述

我试图找出这段 Pascal 代码的问题

function Factorial(n: integer): integer;
begin
  if n = 0 then
    Result := 1
  else if n > 0 then
    Result := Factorial(n - 1) * n; 
end;

当我运行代码时,出现错误 -bash: syntax error near unexpected token `n:'

任何人都可以告诉这是为什么?我正在使用 fpc(免费的 Pascal 编译器)此代码是否适用于不同的 Pascal 编译器?

标签: syntaxcompiler-errorspascal

解决方案


该代码在 fpc 中编译得很好。

正如@KenWhite 所说,从您引用的错误消息中,听起来您使用了错误的工具来尝试编译它 -bash是 Linux 的操作系统外壳,它是一条bash错误消息。 bash不适用于编译 Pascal 代码。

我建议您下载并使用 Lazarus,它是用于 fpc 的免费软件 IDE,可在 Linux 和 Windows 上运行。在系统上安装 Lazarus 后,创建一个新项目(Lazarus 的新项目类型列表中的“简单项目”。然后复制/粘贴begin ...end项目源代码上方的代码,然后保存并编译它,你会看到Lazarus 报告成功编译了该项目。

顺便说一句,代码中有一个遗漏 - 它仅涵盖 n 大于或等于零的情况,因此对于 n 小于零,该函数具有未定义的结果。


推荐阅读