我有一個代碼顯示一個游戲,其中最低分是目標。在我的代碼中,游戲可以根據需要重播多次,并且應該顯示所有游戲中的最低分數。變化的變數是 currentScore。一旦游戲完成,它就會改變。
當前分數可以在 0 到 80 之間。
這就是我想出的,當它不應該總是回傳“新的低分”時。
int lowestScore = 0;
if (currentScore < lowestScore) {
lowestScore = currentScore;
System.out.println("Score = " currentScore " NEW LOW SCORE!");
System.out.println("Lowest Score = " lowestScore);
}
else {
System.out.println("Score = " currentScore);
System.out.println("Lowest Score = " lowestScore);
}
輸出應該顯示最低分值,無論它是否是新的最低分值。如果是新的最低分,則應該顯示“NEW LOW SCORE”,如果不是,則僅顯示當前分數和之前的最低分數。
我知道這個 if 陳述句不起作用,但我真的被卡住了。有任何想法嗎?
這是我的問題的測驗用例。
游戲運行和得分為 45 輸出:得分 = 45 新低得分!最低分 = 45
同樣的順序和游戲再次運行,得分為 78 分:得分 = 78 新低得分!最低分 = 78
這是不正確的,因為在這種情況下,輸出應該是這樣的:
游戲運行和得分為 45 輸出:得分 = 45 新低得分!最低分 = 45
同樣的順序和游戲再次運行,得分為 78 分:得分 = 78 最低得分 = 45
uj5u.com熱心網友回復:
嘗試這個。
int lowestScore = 0;
if(lowestScore == 0){
lowestScore=currentScore;
}
if (lowestScore > currentScore) {
lowestScore = currentScore;
System.out.println("Score = " currentScore " NEW LOW SCORE!");
System.out.println("Lowest Score = " lowestScore);
}
else {
System.out.println("Score = " currentScore);
System.out.println("Lowest Score = " lowestScore);
}
作為一個游戲回圈,當用戶得分最低時,將存盤在最低得分中。
uj5u.com熱心網友回復:
你應該設定一個反映創世最低分的初始值:反映前一輪沒有出現過的最大可能值:
int lowestScore = Integer.MAX_VALUE;
if (currentScore < lowestScore) {
lowestScore = currentScore;
System.out.println("Score = " currentScore " NEW LOW SCORE!");
System.out.println("Lowest Score = " lowestScore);
} else {
System.out.println("Score = " currentScore);
System.out.println("Lowest Score = " lowestScore);
}
uj5u.com熱心網友回復:
您應該將最低分數存盤在您不會覆寫的變數中。
如果您使用的是資料庫,這就是存盤它的地方。如果你正在做一個記憶體系統,你應該使用一個值不被不斷覆寫的地方。
不推薦這樣做,但在這種情況下,可以使用靜態變數,因此它將在啟動時解決,然后不會在每次呼叫時再次覆寫它。
static int lowestScore = Integer.MAX_VALUE;
我建議您將第一個值設定為 Integer.MAX_VALUE 以便在您的最大值從 80 更改為 120 的情況下不需要更改它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357404.html
