繁体   English   中英

如何让我的子菜单返回主菜单

[英]How to make my submenu return to Main Menu

我一直在寻找整个论坛,但我没有找到解决方案。

我在 Main class 中有主 Switch 菜单来执行简单的计算,它调用另一个 class 中的子菜单来进行计算并将值添加到数组中。 计算完成后,我想将 go 返回到主菜单和 select 选项 2 显示数组,我创建主 class 的新实例,但是它可以工作,但我的数组为空。

我该如何解决?

public class MainMenu {

    public static void main(String[] args) {

        MainMenu menu = new MainMenu();

        menu.Menu();

    }

    public void Menu() {

        Submenu submenu = new Submenu();

        int option;
        Scanner scanner = new Scanner(System.in);

        System.out.println("1 - Calc. 2- Exit");
        option = scanner.nextInt();

        switch (option) {

        case 1:
            System.out.println("Option 1");
            submenu.Calc();
            break;
        case 2:
            System.out.println("Show Array");
            System.out.println(submenu.toString());
            break;

        }

    }

}

子菜单 Class:

public class Submenu {

    MainMenu menu = new MainMenu();
    ArrayList<Integer> arrayTest = new ArrayList<>();

    private int sum;

    public void Calc() {
        sum = 5 + 5;
        arrayTest.add(sum);
        menu.Menu();
    }

    @Override
    public String toString() {
        return "Array Test: " + arrayTest;
    }
}

我做了一些改变试图解决它。 我有我的 MainMenu class 将实例传递给另一个 class 中的子菜单。 但是,我有一个无限循环,有什么建议吗?

公共 class 主菜单 {

private int option;

Submenu submenu = new Submenu(new MainMenu());

public void Menu() {

    Scanner scanner = new Scanner(System.in);

    System.out.println("1 - Calc. 2- Show Array");
    option = scanner.nextInt();

    switch (option) {

    case 1:
        System.out.println("Option 1");
        submenu.Calc();
        break;

    case 2:
        System.out.println("Show Array");
        break;

    }

}

}

公共 class 子菜单 {

private int sum;
MainMenu a;

ArrayList<Integer> arrayTest = new ArrayList<>();

public Submenu(MainMenu object) {
    this.a = object;
}



public void Calc() {
    sum = 5 + 5;
    System.out.println("Sum: " + sum);
    a.Menu();

}

@Override
public String toString() {
    return "Array Test: " + arrayTest;
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM