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