2014-10-02 135 views
0

Java新手。因此,我希望用户能够通过键入“退出”随时停止付款流程。我怎样才能做到这一点?尝试了do-while循环,但它不工作。下面是代码Java在用户按下按钮时停止执行循环操作

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")); 
} 
+0

我不详细说明你想要什么。如果用户在名称或地址中输入“退出”或... ...,您是否想要停止处理? – Jens 2014-10-02 11:36:37

+0

是的,所以如果用户输入退出然后循环立即停止,否则用户将继续输入他们的详细信息 – bisonsausage 2014-10-02 11:40:35

回答

0

所以你必须做somethink这样的:

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和到期因为这些是int值,所以你不能输入“quit”。

0

只要你可以改变你的代码如下

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); 
+0

感谢您的修复。但是,我的问题是如何停止循环。我应该把word = s.nextLine每2行(在String name = s.next();)之后等等 – bisonsausage 2014-10-02 11:44:37

+0

@bisonsausage你可以试试这个代码, – 2014-10-02 11:47:06

+0

我想你误解了我想要的。在你的代码中,它要求用户在用户输入到期日期后退出。我希望用户能够通过输入quit退出任何他们想要的时间。延斯已经为我提供了答案。感谢您的回应。欢呼:) – bisonsausage 2014-10-02 11:52:43