IF-ELSE具有多个IF

use*_*658 -2 delphi

我正在尝试对某些值进行多次检查,但我无法让它工作.

if DerobModel.HouseProperties.IntValue['VolumeNorth'] = 1 then
    ivol[2] := 1;
  else
  if DerobModel.HouseProperties.IntValue['VolumeEast'] = 1 then
    ivol[2] := 1;
  end
  else
  if DerobModel.HouseProperties.IntValue['VolumeWest'] = 1 then
  ivol[2]:=1;

  end;
Run Code Online (Sandbox Code Playgroud)

我想检查"VolumeNorth"是否为1,然后指数ivol [2]将为1,否则如果East为1,则ivol [2]应为1,如果不是,则检查West和南也是如此(这还不在代码中).如果它们都不是1那么ivol就不会发生任何事情[2].我如何让它工作?

谢谢!

Dmi*_*nko 6

为什么不使用布尔值或?

if (DerobModel.HouseProperties.IntValue['VolumeNorth'] = 1) or
   (DerobModel.HouseProperties.IntValue['VolumeEast'] = 1) or
   (DerobModel.HouseProperties.IntValue['VolumeWest'] = 1) or
   (DerobModel.HouseProperties.IntValue['VolumeSouth'] = 1) then
  ivol[2] := 1;
Run Code Online (Sandbox Code Playgroud)

如果任何音量(北,东,西,南)1设置ivol[2]为1; 如果没有一个卷等于1则不会发生任何事情(注意,没有 else阻塞)