Как выйти из оператора switch и вернуться к циклу while? - PullRequest
1 голос
/ 22 декабря 2019

Итак, что я пытаюсь, после того, как я получаю достаточно результатов по одному из поисков, чтобы перейти к другому. Другими словами, я хочу выйти из оператора 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!");

        }

    }
}

1 Ответ

0 голосов
/ 22 декабря 2019

Когда вы входите в свой цикл, вы никогда не обновляете 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!");
    }
}

Примечание : Это , которое не ведьма .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...