Delphi if else else if语句不工作“表达式必须是BOOLEAN”

时间:2013-06-12 00:13:54

标签: delphi if-statement conditional delphi-xe2 pascal

我正在尝试在Delphi中制作货币转换器,自从我上次使用Delphi以来已经有一段时间了,所以我有点生疏了。当我试图创建一个if,else if,else语句时,它给出了错误:“表达式的类型必须是BOOLEAN”。

这是我的代码:

if Edit1.Text = '' And Edit2.Text <> ''
    then Edit2.Text := '1'
else
if Edit1.Text <> '' And Edit2.Text = ''
    then ShowMessage('Blah')
else
if Edit1.Text ='' And Edit2.Text = ''
    then ShowMessage('Please Enter A Value')
else
    ShowMessage('Mathing Suff...');

如果有人能看到我的愚蠢错误或出了什么问题,那将会有很大帮助。 :)

编辑:错误在第一个if语句的行上弹出,而另外两个if语句在它之后弹出。

1 个答案:

答案 0 :(得分:14)

这是因为运算符优先,你应该把每个条件放在括号中

试试此代码

if (Edit1.Text = '') And (Edit2.Text <> '')  then 
  Edit2.Text := '1'
else 
if (Edit1.Text <> '') And (Edit2.Text = '') then 
  ShowMessage('Blah')
else 
if (Edit1.Text ='') And (Edit2.Text = '')then 
  ShowMessage('Please Enter A Value')
else 
  ShowMessage('Mathing Suff...');