【问题标题】:How do I create a switch-statement in my main class that when that case is selected will run another main class in my program?How do I create a switch-statement in my main class that when that case is selected will run another main class in my program?
【发布时间】:2019-09-29 15:52:02
【问题描述】:

我有多个类,例如客户、客户、员工、员工、产品、产品。带有“s”的程序是主类。我有一个主课,我希望这是程序的起点。我想要一个 switch 语句。我想请用户输入 1-3,然后从他们的输入中运行该主类。比如如果 input 是 1 就会运行 customers main 等。我该怎么做?

导入 java.util.Scanner;

public class Main {

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

        //run customer add/edit/remove


        int choice = 0;
        while (true) {
            displayMenu();

            switch (choice) {
                case 1:
                    customers.main(null);


                    break;
                case 2:

                    cars.main(null);

                    break;
                case 3:
                    Staff.main(null);

                    break;
            }

        }

    }


    private static void displayMenu() {
        Scanner input;
        {
            input = new Scanner(System.in);
            {
                System.out.println("1. Customers");
                System.out.println("2. Cars");
                System.out.println("3. Staff");

                System.out.println("Which would you like to add/edit: ");
                String choice = input.nextLine();
            }
        }
    }
}


My other classes are fairly similar to this:
import java.util.Scanner;
import java.util.concurrent.CopyOnWriteArrayList;

//creates and array of the customers
public final class customers {
    public static void main(String[] args) throws InputValidationException {

        //add new customer
        CopyOnWriteArrayList<customer> customers = new CopyOnWriteArrayList<>();
        //List will fail in case of remove due to ConcurrentModificationException

        //loop getting input
        //input 'q' to quit

        Scanner input;
        {
            //scanner to get the input

            input = new Scanner(System.in);

            {
                while (true) {
                    //ask user for input and get input
                    System.out.println("Enter id (press 'q' to quit): ");
                    String temp = input.nextLine();
                    if (temp.equals("q")) break;

                    int id = Integer.parseInt(temp);

                    System.out.println("Enter first name:");
                    String firstName = input.nextLine();

                    System.out.println("Enter last name:");
                    String lastName = input.nextLine();



                    //add to array list
                    customers.add(new customer(id, firstName, lastName));


                }

            }
        }

        //Display All
        System.out.println("Current List: ");
        for (customer customer : customers) {
            System.out.println(customer.toString());
        }

        // search
        System.out.println("Enter name to search and display");
        String searchString = input.nextLine();
        for (customer customer : customers) {
            if (customer.search(searchString) != null) {
                System.out.println(customer.toString());
            }
        }


        //Remove
        System.out.println("Enter name to search & remove");
        searchString = input.nextLine();
        for (customer customer : customers) {
            if (customer.search(searchString) != null) {
                System.out.println(customer.toString() + " is removed from the List");
                customers.remove(customer);
            }
        }


    }
}

customer 类只包含变量、setter、getter 和构造函数

【问题讨论】:

  • 听起来不错,你试过了吗?什么不起作用?
  • 显示您的代码。
  • 欢迎来到 Stack Overflow!请使用tour,环顾四周,并通读help center,尤其是I ask a good question?What topics can I ask about here? 是如何做到的。从第二个链接:“要求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的摘要,以及您在解决问题时遇到的困难的描述。”请添加MCVE
  • 我已经上传了我的代码。当我运行程序时,它只是一直在问问题,而不是运行课程。

标签: java oop switch-statement mainclass


【解决方案1】:
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        String input;
        do {
            input = displayMenu();
            switch (input) {
                case "1":
                    customers.main(args);
                    break;
                case "2":
                    cars.main(args);
                    break;
                case "3":
                    Staff.main(args);
                    break;
            }
        } while (!"exit".equals(input));
    }

    private static String displayMenu() {
        Scanner input = new Scanner(System.in);
        System.out.println("1. Customers");
        System.out.println("2. Cars");
        System.out.println("3. Staff");

        System.out.println("Which would you like to add/edit: ");
        return input.nextLine();
    }
}

class customers {
    public static void main(String[] args) {
        System.out.println("hello from 'customers'!");
    }
}

class cars {
    public static void main(String[] args) {
        System.out.println("hello from 'cars'");
    }
}

class Staff {
    public static void main(String[] args) {
        System.out.println("hello from 'Staff'");
    }
}

【讨论】:

    【解决方案2】:
    import java.util.Scanner;
    
    public class MainClasss {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            String option = scanner.next();
    
            switch (option) {
                case "1" :
                    AnotherMainClass.main(args);
                    break;
                case "2" :
                    AnotherAnotherMainClass.main(args);
                    break;
                default:
                    System.out.println("not found!");
            }
    
        }
    }
    
    
    class AnotherMainClass {
        public static void main(String[] args) {
            System.out.println("Hello from AnotherMainClass.main!");
        }
    }
    
    
    class AnotherAnotherMainClass {
        public static void main(String[] args) {
            System.out.println("Hello from AnotherAnotherMainClass.main!");
        }
    }
    

    输入:

    1
    

    输出:

    Hello from AnotherMainClass.main!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-27
      • 1970-01-01
      • 2022-12-01
      • 2022-12-02
      • 2022-12-02
      • 2015-04-16
      • 2022-12-02
      • 2022-12-01
      相关资源
      最近更新 更多