Comparar array en condiconal if

No. Compara si el número está entre 18 y 23, inclusive.

El condicional completo se interpreta
Si H vale entre 0 y 5 ó entre 18 y 23 entonces...

Agrego: Te adjunto la tabla de verdad del condicional.
En verde el primer término, en rojo el segundo, en naranja el resultado del condicional

Como ves, valores entre 6 y 17 o superiores a 23, dan falso, o sea, no cumplen la condición.

Saludos

PD: Corregí la sentencia porque faltaba el paréntesis de cierre