这是一个完善的惯例,应避免使用魔法数字.但复杂的条件公式中的幻数呢?例如:
int result = 0;
if (level <= 50) {
result = (int) (Math.pow(level, 3) * (100 - level) / 50);
}
else if (level <= 68 && level > 50) {
result = (int) (Math.pow(level, 3) * (150 - level) / 100);
}
else if (level <= 98 && level > 68) {
result = (int) (Math.pow(level, 3) * ((1911 - 10 * level) / 3) / 500);
}
else if (level < 100 && level > 98) {
result = (int) (Math.pow(level, 3) * (160 - level) / 100);
}
return result;
在这种情况下,只是说“尽可能避免使用魔法数字”会更好吗?我也在eclipse中使用CheckStyle来帮助向我显示我可能错过了一个真正的幻数.但是,没有办法禁用某些数字的检查,而不是其他数字.