Basically what is happenning is ,
While you are reading double as scan.nextDouble(), you are reading only the double, however there would be ENDLINE character when you hit enter on the stream that is not read by scan.nextDouble().
So when you reach the any1=scan.nextLine(), it reads the endline character which does not equal to Y or y. As a result it exits the while loop.
correct your code like this, just make change one line where you are reading 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 :)
}