java中的组合boolean
和非布尔if语句如何工作?是否需要编写条件语句的特定方式?
例如,下面的代码每次都会给我不同的结果。
甲虫随机初始化为雄性或雌性,年龄为 0。
public class BeetleAgent {
public boolean isFemale;
public int age;
public BeetleAgent(boolean isFemale, int age) {
// initialize class variables with arguments
}
//age in days
@ScheduledMethod(start = 1, interval = 1)
public void trackAge () {
this.setAge(getAge() + 1);
System.out.println("Beetle is now " + this.getAge());
}
// adults mate after 1 week
@ScheduledMethod(start = 1, interval = 1)
public void checkMate() {
if (this.getAge()== 7 && this.isFemale()) {
System.out.println("Both are true, beetle can MATE.");
mate();
}
}
@ScheduledMethod(start = 1, interval = 1)
public void checkMaleDeath() {
if (!this.isFemale() && this.getAge()== 13) {
System.out.println("Both are true, male beetle can DIE.");
maleDeath();
}
}
@ScheduledMethod(start = 1, interval = 1)
public void checkFemaleDeath() {
if (this.isFemale() && this.getAge() == 25) {
System.out.println("Both are true, female beetle can DIE.");
femaleDeath();
}
}
// getters and setters
}
我无法想象java不允许混合......
编辑:
语境...
Random random = new Random();
for (int i = 0; i < 6; i++) {
boolean isFemale = random.nextBoolean();
int age = 0;
BeetleAgent beetle = new BeetleAgent(context, geography, isFemale, age);
context.add(beetle);
beetleagentlist.add(beetle);
Coordinate coord = new Coordinate(-79.6976, 43.4763);
Point geom = fac.createPoint(coord);
geography.move(beetle, geom);
}
我有系统输出代码,可以看到我确实得到了雄性和雌性甲虫。我也有 sysout 代码来查看它们是否正常老化。
有时,方法会被跳过,就好像条件不满足一样。有时它们都可以正常工作。
抱歉,输出是代码格式,但它最简单。我想要的是,如果甲虫是 7 岁的雌性,它们会找到配偶。如果甲虫年龄为 13 岁且为雄性,它们将死亡。如果甲虫年龄为 25 岁且为雌性,它们将死亡。有时会发生这种情况:
Female: true
Female: true
Female: false
Female: false
Female: false
Female: true
Preparing to load a set of trees...
6182 trees loaded!
Preparing to load the model...
1 model loaded!
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 7
Beetle is now 7
Beetle is now 7
Beetle is now 7
Beetle is now 7
Beetle is now 7
Both are true, beetle can MATE.
Mating...
Both are true, beetle can MATE.
Mating...
Both are true, beetle can MATE.
Mating...
//sometimes this prints twice (should only print once)
Both are true, beetle can MATE.
Mating...
Both are true, beetle can MATE.
Mating...
Both are true, beetle can MATE.
Mating...
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 13
Beetle is now 13
Beetle is now 13
Beetle is now 13
Beetle is now 13
Beetle is now 13
Both are true, male beetle can DIE.
Male beetle has died...
Both are true, male beetle can DIE.
Male beetle has died...
Both are true, male beetle can DIE.
Male beetle has died...
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 25
Beetle is now 25
Beetle is now 25
Beetle is now 25
Beetle is now 25
Beetle is now 25
Both are true, female beetle can DIE.
Female beetle has died...
Both are true, female beetle can DIE.
Female beetle has died...
Both are true, female beetle can DIE.
Female beetle has died...
Beetle is now 26
Beetle is now 26
Beetle is now 26
Beetle is now 26
Beetle is now 26
Beetle is now 26
Sometimes this happens, where for in this example, but females dont die(not good). Also notice that the mate function only ran once as it should:
Female: false
Female: false
Female: false
Female: true
Female: true
Female: true
Preparing to load a set of trees...
6182 trees loaded!
Preparing to load the model...
1 model loaded!
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 1
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 2
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 3
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 4
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 5
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 6
Beetle is now 7
Beetle is now 7
Beetle is now 7
Beetle is now 7
Beetle is now 7
Beetle is now 7
Both are true, beetle can MATE.
Mating...
Both are true, beetle can MATE.
Mating...
Both are true, beetle can MATE.
Mating...
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 8
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 9
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 10
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 11
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 12
Beetle is now 13
Beetle is now 13
Beetle is now 13
Beetle is now 13
Beetle is now 13
Beetle is now 13
Both are true, male beetle can DIE.
Male beetle has died...
Both are true, male beetle can DIE.
Male beetle has died...
Both are true, male beetle can DIE.
Male beetle has died...
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 14
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 15
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 16
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 17
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 18
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 19
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 20
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 21
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 22
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 23
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 24
Beetle is now 25
Beetle is now 25
Beetle is now 25
Beetle is now 25
Beetle is now 25
Beetle is now 25
Beetle is now 26
Beetle is now 26
Beetle is now 26
Beetle is now 26
Beetle is now 26
Beetle is now 26
Beetle is now 27
Beetle is now 27
Beetle is now 27
Beetle is now 27
Beetle is now 27
Beetle is now 27
Beetle is now 28
Beetle is now 28
Beetle is now 28
Beetle is now 28
Beetle is now 28
Beetle is now 28