Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java While或loop,其中on或condition被寻址,而另一个未被寻址?_Java - Fatal编程技术网

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