首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机生成特定数字

随机生成特定数字
EN

Stack Overflow用户
提问于 2016-09-19 11:26:25
回答 2查看 480关注 0票数 0

我想从1-5中随机生成数字,但问题是它不应该随机生成它的currentFloor。我的问题是从案例2到案例4。在案例2中,它应该随机生成数字1、3、4和5。同样的逻辑也适用于案例3和案例4。

代码语言:javascript
复制
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;
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-19 11:33:29

生成一个介于1和4之间的数字,如果该数字为>=,则将其递增1。这将适用于所有情况,因此您可以在currentFloor语句之前计算它。

实际上,从您的代码来看,如果您使用这种策略,您甚至不需要switch语句。

代码语言:javascript
复制
int destination = rand1.nextInt(4) + 1;
if (destination >= currentFloor) {
    destination++;
}
destElevator.add(destination)
System.out.println(destElevator);
票数 3
EN

Stack Overflow用户

发布于 2016-09-19 11:35:59

希望它能行得通:

代码语言:javascript
复制
public int generator(int currentFloor){
    int result = currentFloor;
    while(result == currentFloor){
        result = 1 + (int)(Math.random() * (5 - 1));
    }
    return result;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39564922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档