首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >if / else if在getter/setter Java中

if / else if在getter/setter Java中
EN

Stack Overflow用户
提问于 2015-10-27 22:57:28
回答 3查看 4.3K关注 0票数 0

我最近开始了我的软件工程教育,我们目前正在学习Java的基础知识……我们必须创建一个简单的基于文本的机场游戏,我遇到了一些小麻烦。

我已经尝试了google和SOF搜索功能,找到了许多“解决方案”,但似乎没有一个能解决我的问题。所以请原谅我的“菜鸟”问题:

在游戏中,我们有几个机场,每轮产生随机数量的乘客,最少100人,最多999人。为此,我使用了以下代码...这是有效的,不会给我任何错误,但我仍然得到100以下的随机结果。我做错了什么?就像我说的,我尝试了许多不同的方法,但它似乎忽略了我的if / if else条件……

代码语言:javascript
复制
int paxGenerator;

public int getPaxGenerator() {
    return this.paxGenerator = (int) (Math.random() * 1000);

}

public void setPaxGenerator(int paxGenerator) {

    if (paxGenerator<100) {
        this.paxGenerator = 100;
    } else if (paxGenerator > 999) {
        this.paxGenerator = 999;
    }

}

编辑:

return this.paxGenerator = (int) (Math.random() * 900) + 100;确实解决了我的问题,thx @user43219,但是,为了便于学习,有人能给我举个例子,说明我应该如何正确地实现if else语句吗?因为我想创建12个新对象,所有这些对象都必须生成一个不同的随机数。如果我把随机代码放在getter/setter之外,它每次都会给我相同的数字……而且if else语句甚至不允许在getter/setter之外...请记住,我是一个初学者,所以事情对我来说并不那么明显:提前做好准备!

EN

回答 3

Stack Overflow用户

发布于 2015-10-27 23:01:44

如果你有一个100名乘客的“楼层”,我个人会避免所有复杂的逻辑,只使用this.paxgenerator = (int)(Math.random()*900)+100;

(int)(Math.random()*x)将生成从0到x-1的数字。

票数 1
EN

Stack Overflow用户

发布于 2015-10-27 23:03:11

你不能给你的二传手打电话。这行代码:

代码语言:javascript
复制
return this.paxGenerator = (int) (Math.random() * 1000);

不隐式调用setPaxGenerator() -它绕过设置器,直接设置属性值。

票数 1
EN

Stack Overflow用户

发布于 2015-10-27 23:03:26

您可以使用Random类。

代码语言:javascript
复制
Random rand = new Random();

 int randomNum = rand.nextInt((999 - 100) + 1) + 100;

  System.out.println(randomNum);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33371320

复制
相关文章

相似问题

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