Прежде всего, обратите внимание на scan.nextDouble (), так как он читает число, но не точку разрыва, вам нужно будет добавить фиктивную scan.nextLine () или что-то подобное, чтобы читать строку разрыва после числа.
Я всегда предпочитаю иметь методы, выполняющие одну вещь, например askForData (сканирование сканера), поэтому это будет выглядеть так:
import java.util.Scanner;
public class SomeTest {
public static void main(String[] args) {
System.out.println("Enter customer names or q to quit entering names");
Scanner scan = new Scanner(System.in);
String name="notExit"; //some name that is not exiting
while(!name.equalsIgnoreCase("q")){
name = askForData(scan);
}
}
private static String askForData(Scanner scan) {
System.out.print("Enter a customer name: ");
String name = scan.nextLine();
if (!name.equalsIgnoreCase("q")) {
System.out.print("Enter openning balance: ");
Double balance = scan.nextDouble();
scan.nextLine(); //to read the break line
}
return name;
}
}