我如何执行特定代码然后返回到我的主代码

How do I execute a certain code and then back at my main code

所以我想找到一种方法来执行我的代码,然后返回到我的主要代码。我是 java 的新人,所以请不要评判我的错误代码 :) Anw 所以我有这段代码,我希望只有当用户在下面的代码中插入数字 2 时,它才会被激活

Boolean CitizenPhase=false;
            while(CitizenPhase){
                JOptionPane.showMessageDialog(null, "Welcome To our Market. I see you need resources to please your citizens. Well You came to the right place!", "Global Market", JOptionPane.INFORMATION_MESSAGE);
                String MarketBuy=JOptionPane.showInputDialog("Choose What you want to buy \n 1.Corn ("+StockCorn+"$) Increases Hapiness by 40 \n 2.Cotton ("+StockCotton+"$) Increases Hapiness by 10 \n 3.Oranges ("+StockOrange+"$) Increases Hapiness by 15 \n 4.Silver ("+StockSilver+"$) Increases Hapiness by 100 \n 5.Sugar ("+StockSugar+"$) Increases Hapiness by 45 \n 6.Coffee ("+StockCoffee+"$) Increases Hapiness by 35 \n 7.Rice ("+StockRice+"$) Increases Hapiness by 25", "Global Market");
                if(MarketBuy.equals("1")){
                    MoneyCount-=StockCorn;
                    JOptionPane.showMessageDialog(null,"Buy Successfull. You now have "+MoneyCount+"$ left!", "Global Market",JOptionPane.INFORMATION_MESSAGE);
                    CitizenPhase=false;
                    MainMenu=true;
                }if(MarketBuy.equals("2")){
                    MoneyCount-=StockCotton;
                    JOptionPane.showMessageDialog(null,"Buy Successfull. You now have "+MoneyCount+"$ left!", "Global Market",JOptionPane.INFORMATION_MESSAGE);
                    CitizenPhase=false;
                    MainMenu=true;
                }if(MarketBuy.equals("3")){
                    MoneyCount-=StockOrange;
                    JOptionPane.showMessageDialog(null,"Buy Successfull. You now have "+MoneyCount+"$ left!", "Global Market",JOptionPane.INFORMATION_MESSAGE);
                    CitizenPhase=false;
                    MainMenu=true;
                }if(MarketBuy.equals("4")){
                    MoneyCount-=StockSilver;
                    JOptionPane.showMessageDialog(null,"Buy Successfull. You now have "+MoneyCount+"$ left!", "Global Market",JOptionPane.INFORMATION_MESSAGE);
                    CitizenPhase=false;
                    MainMenu=true;
                }if(MarketBuy.equals("5")){
                    MoneyCount-=StockSugar;
                    JOptionPane.showMessageDialog(null,"Buy Successfull. You now have "+MoneyCount+"$ left!", "Global Market",JOptionPane.INFORMATION_MESSAGE);
                    CitizenPhase=false;
                    MainMenu=true;
                }if(MarketBuy.equals("6")){
                    MoneyCount-=StockCoffee;
                    JOptionPane.showMessageDialog(null,"Buy Successfull. You now have "+MoneyCount+"$ left!", "Global Market",JOptionPane.INFORMATION_MESSAGE);
                    CitizenPhase=false;
                    MainMenu=true;
                }if(MarketBuy.equals("7")){
                    MoneyCount-=StockRice;
                    JOptionPane.showMessageDialog(null,"Buy Successfull. You now have "+MoneyCount+"$ left!", "Global Market",JOptionPane.INFORMATION_MESSAGE);
                    CitizenPhase=false;
                    MainMenu=true;
                }
            }

下面是这里..所以这段代码应该开始上面的代码..但是它说变量 CitizenPhase 不存在...发生这种情况是因为这段代码在上面的代码之上 xD 混淆了吗?那么除了使用 MainMenu=false 之外还有其他方法吗?公民阶段=真;开始一段代码?感谢您的宝贵时间:)

if (Buy1.equals("2")) {
                    MainMenu=false;
                    CitizenPhase=true;
                }

在检查之前移动 CitizenPhase 声明,例如:

Boolean CitizenPhase=false;
if (Buy1.equals("2")) {
   MainMenu=false;
   CitizenPhase=true;
}

while(CitizenPhase){...

我们需要更多代码。您正在 Buy1 上测试条件,但它没有在您向我们展示的内容中声明。

你为什么不使用方法呢?即:

public static void method1(){ //insert above code here }

if (Buy1.equals("2"){ method1();}