Java 动作后断环

Java 动作后断环,java,loops,do-while,Java,Loops,Do While,在我完成我列出的其中一个选项后,do-while循环结束。 例如,它说:在我购买并部署了一些部队之后,进程以退出代码0结束 我错过了什么?! 我希望它一直持续下去,直到这个人不这么想,或者玩家赢了 do { refresh(); System.out.println("" + "Lobby\n\n" + "==========\n" + "Balance: "+bala

在我完成我列出的其中一个选项后,do-while循环结束。 例如,它说:在我购买并部署了一些部队之后,进程以退出代码0结束

我错过了什么?! 我希望它一直持续下去,直到这个人不这么想,或者玩家赢了

do {
        refresh();
        System.out.println("" +
                "Lobby\n\n" +
                "==========\n" +
                "Balance: "+balance+"\n" +
                "Production Per Tick: "+production+"\n"+
                "\n----------\n" +
                "Options\n" +
                "----------\n" +
                "1. Show map\n" +
                "2. Build troops\n" +
                "3. Move troops\n" +
                "4. Upgrade Production\n" +
                "5. End turn\n");
        minimenu = input.nextInt();
        if  (minimenu==1) {
            refresh();
            displayMap(map);
            System.out.println("" +
                    "Map Legend:\n" +
                    "------------\n" +
                    "0 = not occupied\n" +
                    "1 = US Territory\n" +
                    "2 = Terrorist Territory\n");
        }
        else if (minimenu==2) {
            int troop;

            refresh();
            System.out.println("" +
                    "Choose the troops you want to build\n" +
                    "-----------------------------------\n" +
                    "1. Special Force - 100$\n" +
                    "2. Tank - 500$ \n" +
                    "3. F-32 - 1500$ \n" +
                    "--->");
            troop = input.nextInt();

                int amount,troopCount;
                System.out.print("Number of Special Forces you want: ");
                troopCount = input.nextInt();
                amount = troopCount*100;
                System.out.println("\nTotal: "+amount+"$\n" +
                        "Type 1 to conform: \n");
                    if (input.nextInt() ==1)
                        balance = balance-amount;
                int X,Y;
                do {
                System.out.print("" +
                        "where do you want to deploy the troops? (Must deploy on own land!)\n" +
                        "Enter Y coordinate: ");
                        Y =  input.nextInt();
                System.out.println("\nEnter X Coordinate");
                        X = input.nextInt();
                System.out.println(map[Y][X]+"This One"); //test code

                    if (varifyDeployment(map[Y][X])) {
                        if (troop==1) {
                            US_SpecialForce[Y][X] += troopCount;
                            System.out.println("Success!");
                        }
                        else if (troop ==2) {
                            US_Tank[Y][X] += troopCount;
                            System.out.println("Success!");
                        }
                        else if (troop == 3) {
                            US_Air[Y][X] += troopCount;
                            System.out.println("Success!");
                        }
                    }
                    else
                        System.out.println("Incorrect location, Try Again");
                }while (!varifyDeployment(map[Y][X]));
                    displayMap(US_SpecialForce); //test code

        }
    }while (minimenu==5);

谢谢

看来您的逻辑不正确。您的菜单选项是#5

但是您的do while循环条件是

}while (minimenu==5);
只有当
minimenu
if 5时,才会继续循环。我认为您不希望等于5,因此如果不是
5
,循环将继续,如果是
5
,循环将结束

}while (minimenu != 5);

使用调试器并单步执行代码。
do{…}while(b)
执行循环一次,然后在
b
true
时继续执行。如果
b
false
,则停止运行循环。你可能不清楚这是怎么回事吗?到底是什么问题。非常感谢。
}while (minimenu != 5);