基本上发生的是,当您将double读取为scan.nextDouble()时,您只读取了double,但是当您在不被scan.nextDouble()读取的流上按回车键时,将出现ENDLINE字符。因此,当您到达any1
scan.nextLine()时,它将读取不等于Y或y的结束符。结果,它退出了while循环。像这样更正您的代码,只需更改您正在阅读doubel的一行即可:
while(more){ System.out.print("Please input purchase amount: "); purchase+=Double.parseDouble(scan.nextLine()); System.out.println(); System.out.print("Do you have any more purchases Y/N?: "); // scan.nextLine(); String any1=scan.nextLine(); System.out.println();more = any1.equals("y") || any1.equals("Y");//Shortened :)}


