La lógica de esta expresión no es correcta.
Si unes todas las comparaciones con OR, estás diciendo que basta con que se cumpla UNA SOLA de ellas, para que sea TRUE.
Por tanto,
cualquier número que sea
mayor que -100, va dar resultado TRUE.
Es decir, no estás consiguiendo establecer dos rangos limitados de valores que son TRUE.
Fíjate cómo lo escribí yo:
Tenemos dos expresiones, cada una encerrada en sus propios paréntesis, unidas por un OR.
Dichas expresiones, dentro de sus paréntesis, constan de dos comparaciones unidas por un AND.
Ahí estamos diciendo que solo serán TRUE los valores que
sean mayor/igual que -100 Y menor/igual -50 O también los valores
que sean mayor/igual que 60 Y menor/igual que 200
Ahí sí hemos definido dos rangos delimitados, así que los números que no entren dentro de esos rangos, serán FALSE.
Por ejemplo, el valor 45 sería FALSE.
El valor 65, será TRUE.
Si utilizamos mi expresión, cuando esta retorna TRUE es porque el valor es correcto, y es entonces cuando habría que aumentar el contador de números válidos.