我想从1-5中随机生成数字,但问题是它不应该随机生成其currentFloor
。我的问题是从案例2到4.在案例2中,它应该随机生成数字1,3,4和5.相同的逻辑适用于案例3和案例4.
switch(currentFloor) {
//generates number from 2-5
case 1:
int destination1 = rand1.nextInt(3) + 2;
destElevator.add(destination1);
System.out.println(destElevator);
break;
case 2:
case 3:
case 4:
//generates number from 1-4
case 5:
int destination2 = rand1.nextInt(3) + 1;
destElevator.add(destination2);
System.out.println(destElevator);
break;
}
答案 0 :(得分:3)
生成一个介于1和4之间的数字,如果数字是> = currentFloor则将其递增1.这将适用于所有情况,因此您可以在switch语句之前计算它。
实际上,从您的代码中,如果您使用此策略,则甚至不需要switch语句。
int destination = rand1.nextInt(4) + 1;
if (destination >= currentFloor) {
destination++;
}
destElevator.add(destination)
System.out.println(destElevator);
答案 1 :(得分:0)
mya它可以工作: -
public int generator(int currentFloor){
int result = currentFloor;
while(result == currentFloor){
result = 1 + (int)(Math.random() * (5 - 1));
}
return result;
}