Yo entiendo todo pero, generalmente, me centro en responder sobre lo que preguntan (y seguramente es un error). Si alguien dice que ingresa dígitos entre 0 y 9, no creo necesario comprobar la validez, entonces no le digo que verifique que sea 0 o mas y 9 o menos, porque esa ya es la condición. En este caso esa comprobación encima provocaba el mal funcionamiento porque lo leído era un ASCII en rango 48 a 57. Como bien dices, igualmente y de pura casualidad, la paridad se cumple igual pero... no pasa el filtro de rango del numero, o sea, no se verifica nada.
El PO no dijo que quiere entrar más de un dígito ni aislar caracteres que no sean dígitos, o sea, si ingresa "K" o "T" no está contemplado en la pregunta porque son letras, no dígitos.
No preguntó cómo verificaba números de 2 o más dígitos ni qué pasaba si pulsa Intro/ Enter o como figure en el teclado.
O sea, mi respuesta fue puntual a una pregunta puntual: "¿Cómo comprobar si un dígito es par o impar?".
Repito, tal vez sea mi error ver las cosas de esta forma, tal vez mi formación (que nunca ejercí) en analisis de sistemas no aplique acá en el foro, pero eso es lo que me "machacaron" siempre: "Respuesta puntual a problema puntual".
Saludos