Java 方法甚至在循环外运行
我有这个方法,可以作为其他方法的菜单:Java 方法甚至在循环外运行,java,Java,我有这个方法,可以作为其他方法的菜单: 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 operaca
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键时,程序停止,ok。但当我按1注册一辆车,然后按6退出程序时,程序会不断要求我输入另一个输入
我所期望的是,当我操作程序并按6退出时,它只会完全停止程序。在do while循环中移动println和scanner.nextInt行:
下面是一个修改后的示例,它只打印出方法名称:
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();
}
}
用法示例:
你只问了一次。您需要在do while循环中将扫描的int分配给operacao变量的行移动到第一个if之前。
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!