| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1463 人关注过本帖
标题:【求助】关于Math类中的random的问题
只看楼主 加入收藏
汪小贱
Rank: 2
等 级:论坛游民
帖 子:24
专家分:36
注 册:2017-1-23
结帖率:83.33%
收藏
 问题点数:0 回复次数:2 
【求助】关于Math类中的random的问题
Java中math类中Math.random()中产生的随机数是否会根据程序中的要求而随机产生
像这个书中的电梯问题?
程序代码:
package name1;

public class TestGoodElevator {
    public static void main(String args[])
    {
        GoodElevator e2=new GoodElevator();
        e2.openDoor();
        e2.closeDoor();
        e2.goUp();
        e2.goUp();
        System.out.println("电梯在等"+e2.getFloor()+"层");
        e2.openDoor();
        e2.closeDoor();
        e2.goDown();
        e2.openDoor();
        e2.closeDoor();
        e2.goDown();
        e2.goDown();
        if(e2.getFloor()!=5 && !e2.isOpen())
            e2.setFloor(5);
        e2.openDoor();
        e2.closeDoor();
        e2.setFloor(10);
        System.out.println("------------电梯测试结束-----------");
    }

}
class GoodElevator
{
    private boolean doorOpen=false;
    private int floor=1;
    private int weight=0;
    final int CAPACITY=1000;
    final int TOP_FLOOR=5;
    final int BOTTOM_FLOOR=1;
    
    public void openDoor()
    {
        doorOpen=true;
    }
    
    public void closeDoor()
    {
        checkWeightSecsors();
        if(weight<=CAPACITY)
        {
            doorOpen=false;
        }
        else
            System.out.println("超重,门不能关!");
    }
    
    private void checkWeightSecsors()
    {
        weight=(int)(Math.random()*1500);
        //System.out.println(Math.random());
        System.out.println("当前乘客总重量是:"+weight+"公斤");
    }
    
    public void goUp()
    {
        if(!doorOpen)
        {
            if(floor<TOP_FLOOR)
            {
                floor++;
                System.out.println("电梯已经上到第"+floor+"层");
            }
            else
                System.out.println("电梯已在最高层,无法上升!");
        }
        else
            System.out.println("电梯门未关,不能上升!");
    }
    
    public void goDown()
    {
        if(!doorOpen)
        {
            if(floor>BOTTOM_FLOOR)
            {
                floor--;
                System.out.println("电梯已经下降到第"+floor+"层");
            }
            else
                System.out.println("电梯已经在最底层,无法下降!");
        }
        else
            System.out.println("电梯门未关,不能下降!");
    }
    
    public void setFloor(int goal)
    {
        if(goal>=BOTTOM_FLOOR && goal<=TOP_FLOOR)
        {
            while(floor!=goal)
            {
                if(floor<goal)
                    goUp();
                else
                    goDown();
            }
            System.out.println("电梯按要求停在第"+floor+"层");
        }
        else
            System.out.println("没有第"+goal+"层");
    }
    
    public int getFloor()
    {
        return floor;
    }
    
    public boolean isOpen()
    {
        return doorOpen;
    }
}
搜索更多相关主题的帖子: Java 
2017-04-26 21:59
zsh981022984
Rank: 3Rank: 3
来 自:湖南
等 级:论坛游侠
威 望:6
帖 子:36
专家分:153
注 册:2015-12-6
收藏
得分:0 
这问题不是看的很明白

但Math.random()将产生0~1之间的浮点型随机数,控制范围一般在乘一个整数

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2017-04-26 22:06
汪小贱
Rank: 2
等 级:论坛游民
帖 子:24
专家分:36
注 册:2017-1-23
收藏
得分:0 
回复 2楼 zsh981022984
这个我知道,我是想问math.random()在0-1之间随机产生的小数是否会受到像题目中在main中的goUp()以及goDown()之类的影响?
2017-04-27 08:17
快速回复:【求助】关于Math类中的random的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012879 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved