0

我在 IF 代码中使用 IF 代码:

if Label1.Caption=Label2.Caption then
begin
  Form1.Close;
  Form2.Show;
end
if Label2.Caption=Label3.Caption then
begin
  Form1.Close;
  Form2.Show;
end
end;

我不断收到缺少分号运算符的错误 有人可以请教如何在具有更多行(开始/结束)的 IF 中制作简单的 IF 吗?

4

2 回答 2

7

您需要用分号分隔语句。

begin
  if ... then 
  begin
    ....
  end; // <--- add missing semi colon
  if ... then 
  begin
    ....
  end; // <-- semi-colon not needed, but looks silly if omitted
end;

代码中的两个 if 语句需要分开。Pascal 语法要求语句用分号分隔。官方语言指南全面涵盖了该语言语法领域: http: //docwiki.embarcadero.com/RADStudio/en/Declarations_and_Statements

最后一点。您在问题中两次指出第二个 if 嵌套在第一个中。事实并非如此。它们是单独的陈述,一个接一个。因此,如果两个条件都为 True,您将调用Form1.Close两次,Form2.Show两次。这似乎不是你的意图,但我无法猜测你的真正意图是什么。

于 2013-10-26T21:56:34.407 回答
4

我想你的意思是想要这个:

if Label1.Caption = Label2.Caption then
  if Label2.Caption = Label3.Caption then
  begin
    Form1.Close;
    Form2.Show;
  end;

可以简写为:

if (Label1.Caption = Label2.Caption) and (Label2.Caption = Label3.Caption) then
begin
  Form1.Close;
  Form2.Show;
end;
于 2013-10-26T22:59:56.900 回答