我正在尝试对某些值进行多次检查,但我无法让它工作。
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;
我想检查“VolumeNorth”是否为1,然后指数ivol [2]将为1,否则如果East为1,则ivol [2]应为1,如果不是,则检查对于West而言也是对于South(这还不在代码中)。如果它们都不是1那么ivol就不会发生任何事情[2]。我如何让它工作?
谢谢!
答案 0 :(得分: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;
如果 任何 的音量(北,东,西,南)1
设为ivol[2]
至1
;如果没有任何卷等于1,则不会发生任何事情(请注意, 没有 else
阻止
答案 1 :(得分:3)
德米特里的回答适合您的情景。为了清晰代码,我还提倡将BEGIN和END与所有IF语句一起使用。然后它可以帮助您更好地理解您的程序流程。
if DerobModel.HouseProperties.IntValue['VolumeNorth'] = 1 then
begin
ivol[2] := 1;
end
else if DerobModel.HouseProperties.IntValue['VolumeEast'] = 1 then
begin
ivol[2] := 1;
end
else if DerobModel.HouseProperties.IntValue['VolumeWest'] = 1 then
begin
ivol[2]:=1;
end;