Welcome to the Ranch.
The problem you are seeing is because calling nextDouble() retrieves the next double from the input but leaves the trailing newline marker (from pressing the ENTER key) and so when you call nextLine() it doesn't wait for input as there is a newline marker waiting to be handled and so you get an empty
string. The trick is to call nextLine() to remove the newline from the scanner's buffer before requesting the user enter a new value.