¿Por qué un operador de Flip-Flop incluye la segunda condición?

El siguiente código está utilizando un operador de flip-flop.

(1..10).each {|x| print "#{x}," if x==3..x==5 }

Por que son los resultados3,4,5?

Creo que debería ser3,4.

Como se mencionó en un tutorial, esta expresión se vuelve verdadera cuandox == 3, y sigue siendo verdad hastax == 5. ¿Cómo se pudo imprimir '5' si se evalúa como falso? ¿Podría alguien aclararme eso para mí?

Respuestas a la pregunta(6)

Su respuesta a la pregunta