In the case of case of an incorrect character (not y Y n N), your code is recursively calling doAgain, and in the end not returning the result of the next doAgain call. Try something like this:

...