如何使用“case”语句而不是“if”语句测试值是否在范围内?

时间:2011-10-18 05:40:00

标签: delphi syntax if-statement case-statement

可以将以下if语句转换为case语句吗?

if (Number >= 5) and (Number <= 10) then
  lblAnswer.Caption := 'in range'
else
  lblAnswer.Caption := 'out of range';

我的回答:

是的,它可以

case (number >= 5) and (Number <= 10) of
  lblAnswer.Caption := 'in range';
  lblAnswer.Caption := 'out of range';
end;

这是对的吗?

3 个答案:

答案 0 :(得分:25)

如果Number有一些整数数据类型,那么:

case number of
5 .. 10: lblAnswer.Caption := 'in range';
else     lblAnswer.Caption := 'out of range';
end;

答案 1 :(得分:8)

一个小小的修正:

case (number >= 5) and (Number <= 10) of
  true:lblAnswer.Caption := 'in range';
  false:lblAnswer.Caption := 'out of range';
end;

答案 2 :(得分:-2)

Function InRange (Lo,Hi,Val : Integer) : Boolean;
Begin
 Result := (Val>=Lo)And(Val<=Hi);
End;