¿El código no espera la entrada del usuario?

Tengo que hacer un proyecto para mi clase de informática. El problema es:

Los clientes de una biblioteca pueden pedir prestados hasta tres libros. Un patrón, por lo tanto, tiene un nombre y hasta tres libros. Un libro tiene un autor y un título. Diseñe e implemente dos clases, Patrón y Libro, para representar estos objetos y el siguiente comportamiento:

El cliente puede instanciar un libro con un título y autor.El cliente puede examinar pero no modificar el título o el autor de un libro.El cliente puede preguntar a un usuario cuando haya tomado prestado un libro determinado (identificado por título).El cliente puede decirle a un usuario que devuelva un libro determinado (identificado por título).El cliente puede decirle a un cliente que tome prestado un libro determinado.

La clase de usuario debe usar una variable de instancia separada para cada libro (un total de tres). Cada una de estas variables es inicialmente nula. Cuando se toma prestado un libro, el usuario busca una variable que no sea nula. Si no se encuentra tal variable, el método devuelve falso. Si se encuentra una variable nula, se restablece al nuevo libro y el método devuelve true. Consideraciones similares se aplican a otros métodos. Utilice el método aString.equals (aString) para comparar dos cadenas de igualdad. Asegúrese de incluir los métodos apropiados de ToString para sus clases y de probarlos con un programa de prueba.

Aquí está miClient clase, que contiene elmain método:http://pastebin.com/JpxCT2F6

Ahora mi problema es que cuando ejecuto el programa, el programa no espera la entrada del usuario. Esto es lo que aparece en la consola de Eclipse:

Please enter title of book 1: 
s
Please enter author of book 1: 
e
Please enter title of book 2: 
f
Please enter author of book 2:
t
Please enter title of book 3: 
g
Please enter author of book 3:
d
Which book would you like to check for?
s
The patron has taken out the book s
Would you like to return a book? (1 yes or 2 no)
1
Which book would you like to return?
Sorry, could not find the book 
Would you like to take out a book? (1 yes or 2 no)
2
Invalid option
Which book would you like to check for?
The patron does not have  taken out
Would you like to return a book? (1 yes or 2 no)

Culo que puede ver, la consola no espera la entrada del usuario después de "¿Qué libro desea devolver?" En su lugar, toma un valor en blanco. Y más adelante en el código, puse "2", que significa no devolver ningún libro, sino que me da una salida de entrada no válida.

Respuestas a la pregunta(3)

Su respuesta a la pregunta