if (finalDistance > 10) {
    dmgMulti = dmgMulti;
}

if (finalDistance < 1) {
    dmgMulti = dmgMulti + 0.5;
}

else {
    dmgMulti = dmgMulti + (0.5/finalDistance);
}


即使当finalDistance = 20仍然运行时,我在做某件事还是非常错误吗?

最佳答案

else仅适用于第二个if。由于20不小于1,因此执行else分支。如果要严格输入条件之一,则第二个if应替换为else if

if (finalDistance > 10) {
    dmgMulti = dmgMulti;
}
else if (finalDistance < 1) { // Here!
    dmgMulti = dmgMulti + 0.5;
}
else {
    dmgMulti = dmgMulti + (0.5/finalDistance);
}

10-05 18:36