我创建了这个程序/场景。
创建多个机器人,然后从已创建的房间“逃离”。我还创建了一个计数器,用于计算机器人所做的动作然后形成平均值。
我创造了所有这一切,它只是想因某种原因返回0。它没有出现任何错误,所以我觉得我错过了一些明显的东西。
以下是代码的两个部分:
public static double countingMoves;
.
.
.
public void move() {
super.move();
countingMoves++;
}
public int getRobotMoves() {
return countingMoves;
}
int Counter = EscapeBot.countingMoves/10;
答案 0 :(得分:5)
int Counter = EscapeBot.countingMoves/10;
第一点
你正在划分两个整数,如评论中所述,将得到0,结果是< 0.将其中一种类型转换为double。此过程称为Arithmetic Promotion,其中表达式中的每个元素都将其精度增加到具有最高精度的元素。 E.g:
int / int = int
double / double = double
int / double = double
int + String = String
代码:
double Counter = EscapeBox.countingMoves/10.0;
第二点
Java命名约定规定,非常量的变量或方法的第一个单词必须以小写字母开头。
Counter -> counter
第三,希望最后一点
如果你看一下计算平均值的位置,0.0
实际上是正确的。您可以在开始之前计算平均值。
double Counter = EscapeBot.countingMoves/10.0;
// When computed at the start, this equals:
// double Counter = EscapeBot.countingMoves(0)/10.0 = 0/10.0 = 0.0
在任何动作之前来临。通过将其放在代码的末尾,您应该获得更准确的读数。