随机生成特定数字

时间:2016-09-19 03:26:25

标签: java random

我想从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;
        }

2 个答案:

答案 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;
}