Java While或loop,其中on或condition被寻址,而另一个未被寻址?
我正在编写一个模拟垄断的程序,我想知道如果一个变量超过一个数字,而不是另一个变量,是否有办法解决这个变量Java While或loop,其中on或condition被寻址,而另一个未被寻址?,java,Java,我正在编写一个模拟垄断的程序,我想知道如果一个变量超过一个数字,而不是另一个变量,是否有办法解决这个变量 while (i<=200){ while(Player1.space<41 || Player2.space<41){ roll(); Player1.space=Player1.space+roll(); System.out.println("Player1 "+Playe
while (i<=200){
while(Player1.space<41 || Player2.space<41){
roll();
Player1.space=Player1.space+roll();
System.out.println("Player1 "+Player1.space);
i++;
roll();
Player2.space=Player2.space+roll();
System.out.println("Player2 "+Player2.space);
i++;
}
//So here I want to reset the variable that reached 41 back to one.
}
}
while(我我会这样做:
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
这假设您的空格
编号从1开始(如果您说40
是一个有效空格,并且从您的注释中,您希望“将到达41的变量重置回1”)
然后就不再需要内部while循环了,所以只需要
while (i <= 200) {
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
...
如果您的空间编号从0开始,则此功能非常有效,但如果它从1开始,则可以进行调整,如下所示:
Player1.space = 1 + ((Player1.space + roll() - 1) % 40);
您可以通过以下内容看到两者之间的区别:
public static void main(String[] args) {
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo > 40 ? moveTo - 40 : moveTo;
System.out.println("" + moveTo + " " + space);
}
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo % 40;
System.out.println("" + moveTo + " " + space);
}
}
publicstaticvoidmain(字符串[]args){
对于(int moveTo=0;moveTo<50;moveTo++){
int space=moveTo>40?moveTo-40:moveTo;
System.out.println(“+moveTo+”+空格);
}
对于(int moveTo=0;moveTo<50;moveTo++){
int空格=移动到%40;
System.out.println(“+moveTo+”+空格);
}
}
我会这样做:
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
这假设您的空格
编号从1开始(如果您说40
是一个有效空格,并且从您的注释中,您希望“将到达41的变量重置回1”)
然后就不再需要内部while循环了,所以只需要
while (i <= 200) {
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
...
如果您的空间编号从0开始,则此功能非常有效,但如果它从1开始,则可以进行调整,如下所示:
Player1.space = 1 + ((Player1.space + roll() - 1) % 40);
您可以通过以下内容看到两者之间的区别:
public static void main(String[] args) {
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo > 40 ? moveTo - 40 : moveTo;
System.out.println("" + moveTo + " " + space);
}
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo % 40;
System.out.println("" + moveTo + " " + space);
}
}
publicstaticvoidmain(字符串[]args){
对于(int moveTo=0;moveTo<50;moveTo++){
int space=moveTo>40?moveTo-40:moveTo;
System.out.println(“+moveTo+”+空格);
}
对于(int moveTo=0;moveTo<50;moveTo++){
int空格=移动到%40;
System.out.println(“+moveTo+”+空格);
}
}
我会这样做:
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
这假设您的空格
编号从1开始(如果您说40
是一个有效空格,并且从您的注释中,您希望“将到达41的变量重置回1”)
然后就不再需要内部while循环了,所以只需要
while (i <= 200) {
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
...
如果您的空间编号从0开始,则此功能非常有效,但如果它从1开始,则可以进行调整,如下所示:
Player1.space = 1 + ((Player1.space + roll() - 1) % 40);
您可以通过以下内容看到两者之间的区别:
public static void main(String[] args) {
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo > 40 ? moveTo - 40 : moveTo;
System.out.println("" + moveTo + " " + space);
}
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo % 40;
System.out.println("" + moveTo + " " + space);
}
}
publicstaticvoidmain(字符串[]args){
对于(int moveTo=0;moveTo<50;moveTo++){
int space=moveTo>40?moveTo-40:moveTo;
System.out.println(“+moveTo+”+空格);
}
对于(int moveTo=0;moveTo<50;moveTo++){
int空格=移动到%40;
System.out.println(“+moveTo+”+空格);
}
}
我会这样做:
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
这假设您的空格
编号从1开始(如果您说40
是一个有效空格,并且从您的注释中,您希望“将到达41的变量重置回1”)
然后就不再需要内部while循环了,所以只需要
while (i <= 200) {
int moveTo = Player1.space + roll();
Player1.space = moveTo > 40 ? moveTo - 40 : moveTo;
...
如果您的空间编号从0开始,则此功能非常有效,但如果它从1开始,则可以进行调整,如下所示:
Player1.space = 1 + ((Player1.space + roll() - 1) % 40);
您可以通过以下内容看到两者之间的区别:
public static void main(String[] args) {
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo > 40 ? moveTo - 40 : moveTo;
System.out.println("" + moveTo + " " + space);
}
for (int moveTo = 0; moveTo < 50; moveTo++) {
int space = moveTo % 40;
System.out.println("" + moveTo + " " + space);
}
}
publicstaticvoidmain(字符串[]args){
对于(int moveTo=0;moveTo<50;moveTo++){
int space=moveTo>40?moveTo-40:moveTo;
System.out.println(“+moveTo+”+空格);
}
对于(int moveTo=0;moveTo<50;moveTo++){
int空格=移动到%40;
System.out.println(“+moveTo+”+空格);
}
}
如果您必须多次复制一个代码块,您可能需要考虑创建一个方法。但是,您不能只检查if(Player1.space==41)PraseRe=空间=0;否则PyrRe2.Sale= 0;直到两个玩家达到41时,你的内部都不会崩溃。@希亚皮维。我的回答有帮助吗?如果是的话,请考虑使用复选标记。这向更广泛的社区表明这是一个有用的答案,并给回答者和你自己带来了一些声誉。我注意到你已经问了几个阙。自从加入以来,您一直在思考,但是-您应该养成接受问题的最佳答案的习惯。我不知道您能做到这一点。抱歉:(@andybrow如果您必须多次复制代码块,您可能需要考虑创建一个方法。但是,您不能只检查if(Player1.space==41)PraseRe=空间=0;否则PyrRe2.Sale= 0;直到两个玩家达到41时,你的内部都不会崩溃。@希亚皮维。我的回答有帮助吗?如果是的话,请考虑使用复选标记。这向更广泛的社区表明这是一个有用的答案,并给回答者和你自己带来了一些声誉。我注意到你已经问了几个阙。自从加入以来,您一直在思考,但是-您应该养成接受问题的最佳答案的习惯。我不知道您能做到这一点。抱歉:(@andybrow如果您必须多次复制代码块,您可能需要考虑创建一个方法。但是,您不能只检查if(Player1.space==41)PraseRe=空间=0;否则PyrRe2.Sale= 0;直到两个玩家达到41时,你的内部都不会崩溃。@希亚皮维。我的回答有帮助吗?如果是的话,请考虑使用复选标记。这向更广泛的社区表明这是一个有用的答案,并给回答者和你自己带来了一些声誉。我注意到你已经问了几个阙。自从加入以来,您一直在思考,但是-您应该养成接受问题的最佳答案的习惯。我不知道您能做到这一点。抱歉:(@andybrow如果您必须多次复制代码块,您可能需要考虑创建一个方法。但是,您不能只检查if(Player1.space==41)Player1.space=0;否则Player2.space=0;
您的inne