我有下面的代码,其中包括不同数量(nk)的if-else条件。
var n = 128; // n is 128 or greater.
var nk = 4; // nk is varying, can be 4,6,8,12,16 etc. smaller than n.
for (let i = 1; i <= n; i++) {
if ((i < 1 * n / nk) { ... }
else if (i < 2 * n / nk) { ... }
else if (i < 3 * n / nk) { ... }
else if (i < 4 * n / nk) { ... }
}
有没有可能把if-else语句变成一个for循环(或其他任何东西),这样它就可以处理不同的nk?现在,为了解释不同的nk值,我必须用if-else语句编写多个for循环。
我尝试了以下方法,但显然不起作用:
for (let i = 1; i < nk; i++) {
if (x < i * n / nk)) { /* code here is a function of i */ }
}
3条答案
按热度按时间2w2cym1i1#
按照@tevemadar的评论中的指示计算i的值,然后执行i的函数
inb24sb22#
是的,可以将可变长度的if-else语句转换为for循环。但是,您需要修改循环条件和if条件,以适应变化的nk值
ukdjmx9f3#
经过进一步的试验和错误,我得到了以下解决方案,它可以根据我的需要工作。关键是在
if
内部使用闭区间校验;使用break
以获得更好的性能:很抱歉没有正确地表达我的问题,这个问题可能会被关闭或保留,如果答案可能对未来的任何人有用。