有5个静态变量countAllGames,countWinCrosses,countWinNoughts,percentageWinCrosses和percentageWinNoughts。他们的结果显示在统计窗口中。有一个问题:前3个变量通常是按照计划递增的,但最后两个变量会将结果放到0.0。下面是代码:在第二个赋值后复位静态变量
if (countWinCrosses != 0) {
percentageWinCrosses = (countWinCrosses/countAllGames) * 100;
}
if (countWinNoughts != 0) {
percentageWinNoughts = (countWinNoughts/countAllGames) * 100;
}
这是方法的代码,其中一个制胜的X的或o的后执行:
public static void incrementWinCrosses() {
countWinCrosses++;
calculatePercentage();
}
public static void incrementWinNoughts() {
countWinNoughts++;
calculatePercentage();
}
也有增加所有的计数方法玩过的游戏。为什么在第二次调用calculatePercentage()之后变量percentageCrosses和percentageNoughts变为零?在第一次获胜后,其中一个等于100%,但在第二场比赛(赢得另一个)之后,两个变量都等于0.0。前3个变量保留其值,每次增加1.
检查此问题http://stackoverflow.com/questions/7220681/division-of-integers-in-java – Gustek 2014-10-09 09:19:48
使用像这样的静态是邪恶的。为什么不在一个实例上有成员变量? – 2014-10-09 09:21:02
@Lance Java,所以它们在每次运行统计窗口后重置为零? – akhbulatov 2014-10-09 09:25:59