我遇到了我的代碼問題,看起來這部分似乎正在導致它。數組索引中的值不對應於另一個數組的索引
public static boolean[] determine(double avgMilesFlown, double[] numMilesFlown, boolean[] bonusEligibility) {
boolean result = false;
for (double d : numMilesFlown) {
if (d > avgMilesFlown) {
result = true;
}
}
bonusEligibility = Arrays.copyOf(bonusEligibility, bonusEligibility.length + 1);
bonusEligibility[bonusEligibility.length - 1] = result;
return bonusEligibility;
}
這段代碼應該確定是否有人獲得獎金。如果其飛行里程數超過所有進入(包括他們自己)在內的平均飛行里程數,那麼他們有資格。我的問題是,我是否將每個飛行里程數與正確飛行里程的平均值進行比較,以便如果飛行里程數大於平均值,則會返回與每個人相對應的真實列表。
普通的for循環:
for (int i = 0; i < numMilesFlown.length; i++) {
if (numMilesFlown[i] > avgMilesFlown) {
result = true;
}
}
例輸入/輸出:
Names: [tim, jim]
Years Flown: [2, 2]
Miles flown: [45, 43]
Avg Miles: 44
Bonus: [515.00, 515.00]
徒添應該得到獎金,因爲他的飛行裏數是大於平均值,但吉姆贏得一個太,甚至儘管他的飛行里程低於平均水平。
*我將每個單獨的飛行里程數與正確飛行的平均飛行裏數進行比較*? JVM說什麼? – CKing
你可以在'result = true'後添加'break'語句;作爲除了增強。 –
使用正常[for](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html)循環代替[enhanced for loop](https://blogs.oracle.com/) CoreJavaTechTips/entry/using_enhanced_for_loops_with) –