我正在运行一个程序,在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();
}
}
答案 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运营商)。