区间迭代的问题
今天在写一个任务的时候,数据比较多,就想到分批次处理,算出任务的最大值和最小值,然后每次跑一定量的数据。但是中间出了一个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); }