我被一位朋友带到了这个网站。
我试图在Delphi中使用and
,但我似乎做错了。你需要投入使用吗?
我有以下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:string;
begin
a:=edit1.Text;
b:=edit2.Text;
if a=abc and b=def then
showmessage(a+b);
end;
我在第二个=符号
时收到错误答案 0 :(得分:31)
您必须添加一些括号来更改运算符优先级:
if (a=abc) and (b=def) then
运算符and
在=
之前,因此没有括号的结构被理解为
a=(abc and b=def)
产生语法错误。
答案 1 :(得分:10)
and
的优先级高于=
。因此if a=abc and b=def then
变为if a=(abc and b)=def then
,这是无效的。所以把它写成if (a=abc) and (b=def) then
。
答案 2 :(得分:7)
Delphi的运算符优先级规则正在绊倒你。有四个级别。
在您的示例中,AND比较将首先发生,除非您使用括号强制首先完成相等比较。
答案 3 :(得分:2)
当然字符串中缺少撇号 - 声明应该是
if(a ='abc')和(b ='def')然后......