区间迭代的问题
今天在写一个任务的时候,数据比较多,就想到分批次处理,算出任务的最大值和最小值,然后每次跑一定量的数据。但是中间出了一个bug。
后来发现是开闭区间的问题。这里记录一下。访问查阅
大家都知道区间是开闭的[10,20] 包括10和20 (10,20) 不包括10和20
下面的这个代码,在循环遍历的时候,就是有问题的,会多打印区间的临界值
$min = 102;
$max = 209;
$step = 10;
for($i = $min; $i <=$max; $i += $step) {
printf("%d----%d\n",$i,$i+$step);
}
修改如下,每次在临界值+1
$min = 102;
$max = 209;
$step = 10;
for($i = $min; $i <=$max; $i += $step+1) {
printf("%d----%d\n",$i,$i+$step);
}

浙公网安备 33010602011771号