在复习的时候,有时会遇到这样的循环:
i = begin
while ( i != end ) {
// ... do stuff
if ( i == end-1 (the one-but-last element) ) {
... do other stuff
}
increment i
}
然后我问一个问题:你会写这个吗?
i = begin
mid = ( end - begin ) / 2 // (the middle element)
while ( i != end ) {
// ... do stuff
if ( i > mid ) {
... do other stuff
}
increment i
}
在我看来,这超出了编写循环的意图:你循环是因为每个元素都有一些共同的事情要做。使用此构造,您可以对某些元素执行不同的操作。因此,我得出结论,您需要为这些元素创建一个单独的循环:
i = begin
mid = ( end - begin ) / 2 //(the middle element)
while ( i != mid ) {
// ... do stuff
increment i
}
while ( i != end ) {
// ... do stuff
// ... do other stuff
increment i
}
现在我什至在 SO 上看到了一个关于如何以if
一种好的方式编写 - 子句的问题......我很伤心:这里有些不对劲。
我错了吗?如果是这样,那么在编码时将循环体与特殊情况混在一起有什么好处?