我在 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 吗?
我在 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 吗?
您需要用分号分隔语句。
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
两次。这似乎不是你的意图,但我无法猜测你的真正意图是什么。
我想你的意思是想要这个:
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;