我有一个程序,该程序接受3个数字(英尺,英寸,十六分之一),然后将它们乘以x。在开始编写输出部分时,我遇到了需要:

if (sixteenths4<16) {
    sixteenths5=sixteenths4;
    inches6=0;
}else if (16<=sixteenths4) {
    sixteenths5=sixteenths4-16;
    inches6=1;
}else if (32<=sixteenths4) {
    sixteenths5=sixteenths4-32;
    inches6=2;
}else if (48<=sixteenths4) {
    sixteenths5=sixteenths4-48;
    inches6=3;
} else {
    sixteenths5=sixteenths4-64;
    inches6=4;
    }


我意识到最后一件事是多余的,因为它永远不会发生。我的问题是,由于总数的十六分之一可能超过4-5百,因此if else块会很多。有一个更好的方法吗?

最佳答案

删除所有的if / else语句,并改用整数算术。
这是所有代码的等效代码:

sixteenths5 = sixteenths4 % 16;
inches6 = sixteenths4 / 16;

07-28 01:09