程序无限执行的问题,java

时间:2016-02-16 04:57:00

标签: java

我正在研究的小方法应该模拟从0开始的位置,然后随机向后退步或前进,直到达到位置3或位置负3,同时记录到达最高位置,达到负3。

我在这里写的方法不起作用,因为它没有在-3或3处正确停止。

public void randomWalk(){

    Random ran = new Random();
    int position = 0; 
    int max = 0; 
    int steps = 0; 
    while(position != 3 || position != -3){
        int r = ran.nextInt(2);

        if(position > max){
            max = position;
        } else if(r == 0){
           position += 1;
        }else{
            position -= 1 ; 
        }
        System.out.println("position = " + position);
    }
    System.out.println("max position = " + max);

}

我希望这是一个可接受的问题格式。

任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:0)

尝试

Random ran = new Random();
int position = 0; 

while(Math.abs (position) != 3){

    int r = ran.nextInt(2);

    if(r == 0){
       position += 1;
    }else{
        position -= 1 ; 
    }
    System.out.println("position = " + position);
}
System.out.println("max position = " + position);

根据我上面的评论

为什么需要max变量,这与循环结束时的位置值相同。