对于C中的循环,根据初始条件和结束条件自动递增或递减

Ani*_*osh 2 c for-loop

我记得在C中看到一个非常优雅的"for"循环结构,它会根据初始值是否大于或小于结束条件值自动递增或递减循环变量.

换句话说,这样的事情:

fadeUpDown(startVal, stopVal /*, stepSize */ ) {      

    // SOME CODE THAT SETS UP WHETHER TO INCREMENT OR DECREMENT

    for (int i=startVal ; i != stopVal ; ### SOME TRICKY CODE ### ) {    
        // The actual looped code      
    }
}
Run Code Online (Sandbox Code Playgroud)

我再次搜索了这段代码后,我没有成功,所以我在这里,问是否有人可以帮助我.

编辑:我们在这里都是整数.
StopVal的完整性检查是StepSize的整数增量/减量超出了范围.
实际上,让我们跳过StepSize并将其设为1.

pbh*_*bhd 5

naja,例如简单的方法:

int inc=startVal>stopVal?-1:1;
for (int i=startVal ; i != stopVal ; i+=inc ) {
Run Code Online (Sandbox Code Playgroud)

  • @hyde我认为如果startVal和stopVal在循环体中没有改变,任何自尊的编译器都会优化它. (2认同)