【发布时间】:2011-11-29 12:24:42
【问题描述】:
我有一个函数,它被传递一个整数值,代表一个步长值。 我要测试 5 个单独的条件: 值 =0 值 =1 值 =-1 值 >1 值
目前这是作为一组 if 语句实现的,我想将其更改为 case 语句。我对特定值的情况,甚至是有限的范围(比如 1..10)没有问题,但是我如何写一个表示 Value >1 或 Value
【问题讨论】:
标签: delphi
我有一个函数,它被传递一个整数值,代表一个步长值。 我要测试 5 个单独的条件: 值 =0 值 =1 值 =-1 值 >1 值
目前这是作为一组 if 语句实现的,我想将其更改为 case 语句。我对特定值的情况,甚至是有限的范围(比如 1..10)没有问题,但是我如何写一个表示 Value >1 或 Value
【问题讨论】:
标签: delphi
var
MyValue: integer;
...
case MyValue of
Low(Integer)..-2:
beep;
-1:
beep;
0:
beep;
+1:
beep;
2..High(Integer):
beep;
end;
【讨论】:
low(NativeInt) 和 high(NativeInt) ;-)
Integer,那就没问题了。事实上,Integer 始终是 32 位(我忽略了 D1),而 NativeInt 是变化的。写low(Tag) 会更健壮,我认为它编译得很好。