Некорректная работа программы

Написал простенькую игру на java принцип работы простой нужно угадать число но проблема состоит в том что когда нужно спросить у пользователя хочет ли он продолжить игру программа сама прекращает свою работу чего быть не должно
Как можно это исправить?

package study;
import java.util.Scanner;
public class Car {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String action = “”;
do{
int num = (int)(Math.random() * 100 + 1);
int guess = 0;
while(guess != num){
guess = scan.nextInt();
if (guess < num)
System.out.println(“Чосло " + guess + " меньше”);
else if (guess > num)
System.out.println(“Число " + guess + " больше”);
else
System.out.println(“Ввы угадали!” + " Число" + guess);
}
System.out.println(“Wuold you play again (y/n)”);
action = scan.nextLine();
}while (action.equalsIgnoreCase(“y”));
}
}

Наверное scan.nextInt читает число, но не читает “конец строки”. Затем scan.NextLine дочитывает конец строки и возвращает пустую строку в action. Затем происходит сравнение пустой строки, она не равна “y” и происходит выход из внешнего цикла. Такая у меня гипотеза.

Как можно это исправить?

Считывать action до тех пор, пока пользователь не введёт точно y или n.