我已经提出了这个难以理解的if
陈述,并且我想不出最好的方式格式化它的布局以使其更具可读性,并以C方式实现。
if (((value == intMax) && (intMax != 0)) || // Deals with upper bound
(value > (intMax/10)) ||
((value == (intMax/10)) && (digitAdjusted > digitLastIntMax)) ||
((value == intMin) && (intMin != 0)) || // Deals with lower bound
(value < (intMin/10)) ||
((value == (intMin/10)) && (digitAdjusted < digitLastIntMin))) {
// Some code
}
如果这是对SO的不当使用,请告诉我-我将删除此问题。
因此,这就是我按照我收到的所有建议提出的。
// Upper bound
maxReached = (value == intMax) && (intMax != 0);
maxDivTenExceeded = value > (intMax/10);
maxLastDigitExceeded = (value == (intMax/10)) && (digitAdjusted > digitLastIntMax);
// Lower bound
minReached = (value == intMin) && (intMin != 0);
minDivTenExceeded = value < (intMin/10);
minLastDigitExceeded = (value == (intMin/10)) && (digitAdjusted < digitLastIntMin);
// Stop conditions
stopMax = maxReached || maxDivTenExceeded || maxLastDigitExceeded;
stopMin = minReached || minDivTenExceeded || minLastDigitExceeded;
// Prevent integer overflow
if (stopMax || stopMin) {
// Code
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句