为什么else在这个if语句中运行?

时间:2017-12-20 17:59:19

标签: java if-statement

mogrify -format ico -background none -density 600 -define icon:auto-resize=128,64,48,32,16 test.svg 

identify test.ico
test.ico[0] ICO 128x128 128x128+0+0 8-bit sRGB 99678B 0.000u 0:00.000
test.ico[1] ICO 64x64 64x64+0+0 8-bit sRGB 99678B 0.000u 0:00.000
test.ico[2] ICO 48x48 48x48+0+0 8-bit sRGB 99678B 0.000u 0:00.000
test.ico[3] ICO 32x32 32x32+0+0 8-bit sRGB 99678B 0.000u 0:00.000
test.ico[4] ICO 16x16 16x16+0+0 8-bit sRGB 99678B 0.000u 0:00.000

即使在最终距离= 20之类的情况下它还在运行,我还有什么可怕的错误吗?

1 个答案:

答案 0 :(得分:0)

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);
}