java - 如何退出 switch 语句并返回到 While 循环?

标签 java loops while-loop switch-statement exit

所以我正在尝试的是,在通过其中一项搜索获得足够的结果后,再转到另一项搜索。换句话说,我想退出 switch 语句并返回到 while 循环。我怎样才能做到这一点?

我有这个代码:

public static void main(String[] args) throws FileNotFoundException {


    String input = "";
    Scanner scan = new Scanner(System.in);
    System.out.println("Hello, input witch method you shall use(name, amount or date): ");
    input = scan.next();

    Warehouse storage = new Warehouse();
    //todo while loop kad amzinai veiktu. Ar to reikia ?
    while (!input.equals("quit")) {
        switch (input) {
            case "name":
                storage.searchByName();
                break;
            case "amount":
                storage.searchByAmount();
                break;
            default:
                System.out.println("Wrong input!");

        }

    }
}

最佳答案

一旦进入循环,您就永远不会更新input,因此您会返回到while循环(无限地)。有几种方法可以做到这一点,其中一种是 do while 循环。就像,

String helloMsg = "Hello, input which method you shall use(name, amount or date): ";
Scanner scan = new Scanner(System.in);
Warehouse storage = new Warehouse();
String input;
do {
    System.out.println(helloMsg);
    input = scan.next();
    switch (input) {
    case "name":
        storage.searchByName();
        break;
    case "amount":
        storage.searchByAmount();
        break;
    default:
        System.out.println("Wrong input!");
    }
} while (!input.equals("quit"));

另一种情况是无限循环,您可以使用quit来中断。就像,

String helloMsg = "Hello, input which method you shall use(name, amount or date): ";
Scanner scan = new Scanner(System.in);
Warehouse storage = new Warehouse();
loop: while (true) {
    System.out.println(helloMsg);
    String input = scan.next();
    switch (input) {
    case "name":
        storage.searchByName();
        break;
    case "amount":
        storage.searchByAmount();
        break;
    case "quit":
        break loop;
    default:
        System.out.println("Wrong input!");
    }
}

注意:它是 which不是witch .

关于java - 如何退出 switch 语句并返回到 While 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59440420/

相关文章:

javascript - 循环数组对象的最佳方法

arrays - 如何修复我的随机按钮启用代码每次都显示相同的顺序?

Python while 循环 popleft() - 错误 : Empty deque

Javascript:乘法持久性问题建议的解决方案执行超时

java - 在 while 语句内使用嵌套的 if 和 else if 语句

java - 使用 hibernate 连接两个表

java - LRU缓存的最佳实现方式

java - 为什么Java的main方法使用String[]而不是String dot dot dot

javascript - 减少 JavaScript 迭代

java - 如何在CMD中启动Java程序?