有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