Метод работает даже вне цикла - PullRequest
0 голосов
/ 02 июля 2019

У меня есть этот метод, который работает как меню для других методов:

public static void menu(){

    boolean works = true;

    System.out.println("\n1 - Register Car\t2 - Register Client\t3 - Rent car\n4 - Returning car\t5 - Show list\t6 - Exit\n");
    System.out.print("Input: ");
    int operacao = scan.nextInt();

    do {
        if (operacao == 1) {
            cadVeiculo();
        } else if (operacao == 2) {
            cadCliente();
        } else if (operacao == 3) {
            locar();
        } else if (operacao == 4) {
            devolver();
        } else if (operacao == 5) {
            listar();
        } else if (operacao == 6){
            works= false;
        }
    } while (works);
}

Чего я не понимаю, так это когда я запускаю программу и нажимаю «6», остановка программы, хорошо.Но когда я нажимаю «1», например, чтобы зарегистрировать автомобиль, и после этого нажимаю «6», чтобы выйти из программы, программа продолжает просить меня ввести другой ввод.

Я ожидал, что при работезапрограммируйте и нажмите «6», чтобы выйти из программы, просто полностью остановите программу.

1 Ответ

1 голос
/ 02 июля 2019

Переместите строки println и scanner.nextInt() в цикле do-while :

Вот модифицированный пример, который просто печатает имена методов:

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    menu();
  }

  public static void menu() {
    Scanner scan = new Scanner(System.in);
    boolean works = true;
    do {
      System.out.println(
          "\n1 - Register Car\t2 - Register Client\t3 - Rent car\n4 - Returning car\t5 - Show list\t6 - Exit\n");
      System.out.print("Input: ");
      int operacao = scan.nextInt();
      if (operacao == 1) {
        System.out.println("cadVeiculo();");
      } else if (operacao == 2) {
        System.out.println("cadCliente();");
      } else if (operacao == 3) {
        System.out.println("locar();");
      } else if (operacao == 4) {
        System.out.println("devolver();");
      } else if (operacao == 5) {
        System.out.println("listar();");
      } else if (operacao == 6) {
        System.out.println("Goodbye!");
        works = false;
      }
    } while (works);
    scan.close();
  }
}

Пример использования:

1 - Register Car    2 - Register Client 3 - Rent car
4 - Returning car   5 - Show list   6 - Exit

Input: 1
cadVeiculo();

1 - Register Car    2 - Register Client 3 - Rent car
4 - Returning car   5 - Show list   6 - Exit

Input: 3
locar();

1 - Register Car    2 - Register Client 3 - Rent car
4 - Returning car   5 - Show list   6 - Exit

Input: 4
devolver();

1 - Register Car    2 - Register Client 3 - Rent car
4 - Returning car   5 - Show list   6 - Exit

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