boolean
Javaでの組み合わせと非ブール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コードを持っています。それらが適切にエージングされていることを確認するための 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