我想从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;
}发布于 2016-09-19 11:33:29
生成一个介于1和4之间的数字,如果该数字为>=,则将其递增1。这将适用于所有情况,因此您可以在currentFloor语句之前计算它。
实际上,从您的代码来看,如果您使用这种策略,您甚至不需要switch语句。
int destination = rand1.nextInt(4) + 1;
if (destination >= currentFloor) {
destination++;
}
destElevator.add(destination)
System.out.println(destElevator);发布于 2016-09-19 11:35:59
希望它能行得通:
public int generator(int currentFloor){
int result = currentFloor;
while(result == currentFloor){
result = 1 + (int)(Math.random() * (5 - 1));
}
return result;
}https://stackoverflow.com/questions/39564922
复制相似问题