Java练习16随机游走

时间:2015-03-12 16:23:56

标签: java

我正在运行一个程序,在7英尺桥的中间启动某人,你必须生成1和0来模拟前进和后退步骤。它应该计算出这个人向前或向后脱落的步数,我没有完成,但是当我运行它时,它永远不会停止生成数字。这就是我到目前为止所做的:

import java.util.Scanner;
import java.lang.Math;
public class RandomWalk {
    public static void main(String[] args){
        int forwardstep=4;
        int backwardstep=4;
        int average;
        int randomnum=0;
        int attemptnum=0;
        Scanner input=new Scanner(System.in);
        while(forwardstep<7||backwardstep<7){
            randomnum=(int)(2*Math.random()+0);// random number generator//
            System.out.println(randomnum);
            attemptnum+=1;
            if(randomnum==1){
                forwardstep+=1;
                backwardstep-=1;
            }
            else if(randomnum==0){
                backwardstep+=1;

                forwardstep-=1;
            }
        }
        input.close();
    }
}

2 个答案:

答案 0 :(得分:4)

while (forwardstep<7 || backwardstep<7)

你正在寻找桥梁一侧的坠落,所以其中一个永远都是真的。你想检查其中一个是否为假;

while (forwardstep<7 && backwardstep<7)

答案 1 :(得分:0)

因为当您添加一个到一个变量时,您总是退出一个变量。例如,看看这个:

forwardstep = 4; backwardstep = 4;

5-3,6-3,7-3

但是当另一个变量输入if时,你会得到:

6-4,5-4,4-6,3-7

所以,在同一时间两个变量都不等于7是不可能的。也许你必须将你的状态改为&amp;&amp; (AND运营商)。