Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在用户按下按钮时停止do while循环_Java - Fatal编程技术网

Java在用户按下按钮时停止do while循环

Java在用户按下按钮时停止do while循环,java,Java,Java新手。因此,我希望用户能够随时通过键入“退出”停止付款过程。我怎样才能做到这一点?尝试了do while循环,但不起作用。这是密码 public void payItems() { Scanner s = new Scanner(System.in); String word; do { System.out.println("Enter name: "); String name = s.next(); s.n

Java新手。因此,我希望用户能够随时通过键入“退出”停止付款过程。我怎样才能做到这一点?尝试了do while循环,但不起作用。这是密码

  public void payItems() {
    Scanner s = new Scanner(System.in);
    String word;
    do {
        System.out.println("Enter name: ");
        String name = s.next();
        s.nextLine();
        //where should I put word = s.next
        System.out.println("Enter address: ");
        String address = s.nextLine();
        System.out.println("Enter card number: ");
        int cardNo = s.nextInt();
        System.out.println("Enter card expiration date: (DDMMYY)");
        int expirationDate = s.nextInt();
        Customer newcust = new Customer(name, address, cardNo, expirationDate);
    } while (!word.equals("quit"));
}

您只需按如下方式更改代码

 boolean status=true;
    do {
        Scanner s = new Scanner(System.in);
        System.out.println("Enter name: ");
        String name = s.nextLine();
        System.out.println("Enter address: ");
        String address = s.nextLine();
        System.out.println("Enter card number: ");
        int cardNo = s.nextInt();
        System.out.println("Enter card expiration date: (DDMMYY)");
        int expirationDate = s.nextInt();
        System.out.println("You want to add more or quit(type continue to add another, type quit to exit): ");
        String word=s.next();
        if(word.equals("quit")){
            status=false;
        }
    } while (status);

所以你必须这样想:

Scanner s = new Scanner(System.in);
System.out.println("Enter name: ");
String name = s.next();
s.nextLine();
if (name.equals("quit") 
   return;
//where should I put word = s.next
System.out.println("Enter address: ");
String address = s.nextLine();
if (address.equals("quit") 
   return;
System.out.println("Enter card number: ");
int cardNo = s.nextInt();
System.out.println("Enter card expiration date: (DDMMYY)");
int expirationDate = s.nextInt();
Customer newcust = new Customer(name, address, cardNo, expirationDate);

但它不适用于cardNo和expiration,因为它们是int值,所以不能输入“quit”

我不太明白你想要什么。如果用户在名称或地址中输入“quit”或…,是否要停止进程?是的,因此如果用户键入quit,则循环将立即停止,否则用户将继续输入其详细信息以获取该修复。但是是的,我的问题是我怎样才能停止循环。我是不是应该每隔两行(在字符串name=s.next()之后)放一行word=s.nextLine,所以我想你误解了我的意思。在您的代码中,它要求用户在输入到期日期后退出。我希望用户可以通过键入quit随时退出。詹斯已经给了我答案。谢谢你的回复。干杯:)