[英]How do I make my code restart?
因此,我有这段代码,它位于while(MainMenu)里面,我想学习的是如何重新启动代码。 然后MainMenu = true; 可以,但是有时它不会导致我使用return来使程序崩溃,因为用户可以作弊...
if(CitizenLoveNum<=20){
JOptionPane.showMessageDialog(null, "Your citizen are protesting against you! You need to stop them now before something really bad happens", "Citizens on Strike!", JOptionPane.WARNING_MESSAGE);
String Strike=JOptionPane.showInputDialog("Choose 1 of the options below! \n 1.Pay Them (-1000$) \n 2.Send Army (With this move you can lose from 0 to 5 men!)", "Citizens on Strike!");
if(Strike.equals("1")){
if(MoneyCount<=0){
JOptionPane.showMessageDialog(null, "Out Of Money! Try again later..", "No Money Left", JOptionPane.WARNING_MESSAGE);
return;
}
JOptionPane.showMessageDialog(null,"The Citizen's are calm once more. But try buying them recources so that won't happen again!", "Citizens on Strike!",JOptionPane.INFORMATION_MESSAGE);
MoneyCount-=1000;
MainMenu=false;
MainMenu=true;
}else{
Random Army= new Random();
int ArmyNum = Army.nextInt(5 - 0) + 0;
JOptionPane.showMessageDialog(null,"You have sent the army. You lost "+ArmyNum+" Soldiers.", "Citizens on Strike!",JOptionPane.INFORMATION_MESSAGE);
SoldierCount1-=ArmyNum;
MainMenu=false;
MainMenu=true;
}
}
它在我把MainMenu = false放进去的地方起作用; MainMenu = true; 但这不是我用过的地方; 我不得不退货; 因为MainMenu = false; MainMenu = true; 没有工作。 谢谢您的时间:)编辑:当我在if ...中使用if时,它通常不起作用...希望对您有所帮助
这个:
MainMenu=false;
MainMenu=true;
与此相同:
MainMenu=true;
您正在分配一个值,该值将返回到循环开始时进行检查。 如果此时该值为true
,它将继续。 因此,如果要继续循环,请将其设置为true
。 如果要停止,只需将其设置为false
。 做一个或另一个,不要同时做。 请注意, MainMenu=false
将继续执行当前循环,并且(除非以后将其设置为true)将阻止其再次循环。
return
语句所做的是退出您的while
循环完全包含的功能。 如果循环结束后有清除代码,则您不希望return
,因为那样会跳过它。
如果要在循环后执行更多代码(尚未退出函数),但是要立即退出循环而不完成当前迭代,则可以使用break
语句。
如果要立即(从循环中的任何位置)返回循环的开头并继续执行,请使用continue
语句。 循环是否再次执行将取决于MainMenu
的值。
如果要返回while主体的顶部,可以使用关键字
continue;
在while主体中更改MainMenu值不会导致任何操作,因为在每个新循环之前都会对其进行检查,而continue关键字将立即应用。
根据我的解释,您可能会有一些类似以下的代码:
while(true) {
// A: Do stuff here
while(MainMenu) {
// B: Stuff before your posted code
if(CitizenLoveNum<=20){
// C: Your posted code
}
}
// D: Do other stuff here
}
如果要转到B
,请使用continue;
。
如果要转到D
,请使用break;
。
如果您需要不触摸D
而转到A
,则将D
括在if语句中。
如果您在使用继续时结束程序,则可能是顶部缺少while(true)
。 这部分是使代码永久无条件运行所必需的。 否则,在(MainMenu)退出时,您的程序将运行完成。
另外,我想补充一点
MainMenu = false;
MainMenu = true;
相当于
MainMenu = true;
您的代码按顺序执行。 一旦进入while
循环,便不会再次检查MainMenu,直到遇到continue
或循环中的所有代码完成执行为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.