Java 在运行完方法并检索';返回';?理解困难';getter';
我现在拥有的:我目前有一个公共类“MainMenu”,在这里我向用户打招呼,并要求他们输入一组数字(1-10)以获得他们想要执行的选项。这是由开关箱拾取的 在每个案例中,要么运行一个小的执行,要么指向一个单独的类 例如:Java 在运行完方法并检索';返回';?理解困难';getter';,java,Java,我现在拥有的:我目前有一个公共类“MainMenu”,在这里我向用户打招呼,并要求他们输入一组数字(1-10)以获得他们想要执行的选项。这是由开关箱拾取的 在每个案例中,要么运行一个小的执行,要么指向一个单独的类 例如: public static void mainMenu(Scanner sc) { //Scanner sc = new Scanner(System.in); System.out.println("Welcome to the Flight Sche
public static void mainMenu(Scanner sc) {
//Scanner sc = new Scanner(System.in);
System.out.println("Welcome to the Flight Scheduler!\n");
System.out.println("Please remember to always use U, M, T, W, R, F, S, for entering");
System.out.println("the day of the week, and to always use military time");
System.out.println("for entering the time.");
System.out.println("Please make your choice\nby entering the corresponding menu number:\n");
System.out.println("1.\tSet Clock");
System.out.println("2.\tClear Schedule");
System.out.println("3.\tAdd Airline");
System.out.println("4.\tAdd Flight");
System.out.println("5.\tCancel Flight");
System.out.println("6.\tShow Flight Info");
System.out.println("7.\tShow Departures");
System.out.println("8.\tShow Arrivals");
System.out.println("9.\tFind Flights Between Two Airports");
System.out.println("10.\tExit\n");
int userChoice = sc.nextInt();
switch (userChoice) {
case 1:
AirlineAircraftData.AddAirline(sc);
break;
这将执行我的AddAirline方法,我希望将一个对象返回主菜单,并允许用户在输入AddAirline方法请求的字段后,继续从前面提供的10个选项中进行选择
以下是用户选择后我正在运行的方法:
public static A8AirlineAircraftData AddAirline(Scanner sc) {
sc.nextLine();
System.out.println("Please enter the Airline name:");
String airName = sc.nextLine();
System.out.println("Please enter the Airline code:");
String airCode = sc.nextLine();
System.out.println("Please enter the Delta Aircraft:");
String airCraft = sc.nextLine();
System.out.println("Please enter the first class seat capacity:");
int firstClass = sc.nextInt();
System.out.println("Please enter the business class seat capacity:");
int busiClass = sc.nextInt();
System.out.println("Please enter the economy class seat capacity:");
int econClass = sc.nextInt();
System.out.println("Airline name: " + airName);
System.out.println("Airline code: " + airCode);
System.out.println("Delta Aircraft: " + airCraft);
//Splitting the first word from the rest of the string
String arr[] = airCraft.split(" ", 2);
String firstWord = arr[0];
System.out.println(firstWord + " first class seat capacity: " + firstClass);
System.out.println(firstWord + " business class seat capacity: " + busiClass);
System.out.println(firstWord + " economy class seat capacity: " + econClass);
//Airline object
A8AirlineAircraftData airline = new A8AirlineAircraftData(airName, airCode, airCraft, firstClass, busiClass, econClass);
System.out.println(airName + " successfully added. Press Enter to continue.");
sc.nextLine();//Press Enter to continue
sc.nextLine();
//A8MainMenu.mainMenu(sc); //return to main menu after Enter.
return airline;
谢谢你的帮助,我是个新手,我知道我做的很多事情都不一定有意义 因为@dm,我能够想出如何解决这个问题。我只是将整个主菜单包装在一个do-while循环中,该循环在'10'上退出 通常你会在一个循环中运行主菜单,当用户选择退出时退出循环;这条线是不能接受的。为什么会这样?这不是一个好的做法,因为它会把更多的东西放在堆栈上。如果您这样做了,并且用户浏览菜单的次数足够多,最终您会得到一个
stackoverflowerrror
。