簡體   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