You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pascal代码报Identifier expected错误 移除else分支后正常问题求解

问题原因

你遇到的是Pascal类语言(包括Inno Setup使用的Pascal Script)的通用语法限制:if 分支闭合的 end 和紧随其后的 else 之间不允许写分号。

你原始代码中if分支的end后多写了分号,编译器会判定整个if语句已经结束,后续的else就成了没有匹配前置if的非法标识符,因此抛出Identifier expected错误。

正确写法

不需要删除整个else分支,仅去掉if分支末尾end后的分号即可:

function InitializeSetup: Boolean;
begin
  if (not IsUpgrade()) then
    begin
      MsgBox(ExpandConstant('{cm:BaseAppMissing}'), mbError, MB_OK);
      Result := False;
    end  // 此处移除分号即可
  else
    begin
      Result := True;
    end;
end;

补充说明

你删除else分支后代码可以正常运行,是因为单分支if语句的闭合end后添加分号是符合语法规则的,不会触发编译错误。

内容的提问来源于stack exchange,提问作者kzaiwo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:45:03