2011-10-02 25 views
9

Tengo una función a la que se le pasa un valor entero, que representa un valor de paso. Hay 5 condiciones separadas quiero probar para: Valor = 0 Valor = 1 Valor = -1 valor> 1 Valor < -1Declaración de caso Delphi para rangos enteros

Actualmente esto se implementa como un conjunto de sentencias if, y Me gustaría cambiar esto por una declaración de caso. No tengo problemas con los casos de valor específico, o incluso un rango limitado (digamos 1..10), pero ¿cómo escribo un caso que representa Valor> 1 o Valor < -1?

Respuesta

19
var 
    MyValue: integer; 

... 

case MyValue of 
    Low(Integer)..-2: 
    beep; 
    -1: 
    beep; 
    0: 
    beep; 
    +1: 
    beep; 
    2..High(Integer): 
    beep; 
end; 
+0

¡Ah, perfecto! Sabía que debe haber alguna manera de hacerlo, pero no es muy obvio. Gracias. – HMcG

+0

Estupendo no nuevo que el estuche admite intervalos mayores que 255 los confundí con el conjunto de – opc0de

+2

+1 podría tener que refactorizar esto a 'bajo (NativeInt)' y 'alto (NativeInt)' en XE2 ;-) –

Cuestiones relacionadas