java中while 循环

问题遇到的现象和发生背景

java

用代码块功能插入代码,请勿粘贴截图

ShoppingCart shop = new ShoppingCart();
while(cation.equals("y"))
{
System.out.print("Enter item name: ");
name = scan.nextLine();
System.out.print("Enter item price: ");
price = scan.nextDouble();
System.out.print("Enter item quantity: ");
quantity = scan.nextInt();
shop.addToCart(name,price,quantity);
System.out.println(shop);
System.out.print("do you want to continue shopping(y/n): ");
cation = scan.nextLine();
}
System.out.print("Please pay: " + shop.getTotalPrice());

运行结果及报错内容

do you want to continue shopping(y/n): y
Enter item name: knife
Enter item price: 10.00
Enter item quantity: 20

Shopping Cart

Item UnitPrice Quantity Total
knife ¥10.00 20 ¥200.00

Total Price:¥200.00

do you want to continue shopping(y/n): Please pay: 200.0 //没有继续允许输如cation而是直接退出循环?
Process finished with exit code 0

我想要达到的结果

多次循环

System.out.print("do you want to continue shopping(y/n): ");
cation = scan.next();
ShoppingCart shop = new ShoppingCart();
while(cation.equals("y"))
{
System.out.print("Enter item name: ");
name = scan.next();
System.out.print("Enter item price: ");
price = scan.nextDouble();
System.out.print("Enter item quantity: ");
quantity = scan.nextInt();
shop.addToCart(name,price,quantity);
System.out.println(shop);
System.out.print("do you want to continue shopping(y/n): ");
** cation = scan.next();//使用nextLine()输入字符串会把空格和换行输入导致跳出循环
}
System.out.print("Please pay: " + shop.getTotalPrice());
******