对于cicle:变量的增量和减量

时间:2015-07-13 13:48:46

标签: c for-loop increment continue

我写了一个像这样结构的代码

int function(){
        int i, counter = 0;

        for(i=INTEGER; i>0; ++counter, --i){
               if(condition){
                   //do stuff
                   i+=2;
                   continue;
               }
               if(condition){
                   //do stuff
                   i+=35;
                   continue;
               }
               if(condition){
                   //do stuff
                   continue;
               }
               if(condition){
                   //do stuff
                   continue;
               }
         }
         return counter;
    }

我有充分理解变量增量机制作为cicle参数的问题。 在上面的例子中:

  • i变量增加和减少的可能性如何,而返回的counter变量仅增加1
  • 可能吗?

3 个答案:

答案 0 :(得分:1)

变量counter在for语句中增加的次数与变量i在for语句中减少的次数相同

for(i=INTEGER; i>0; ++counter, --i){

continue语句后,这部分for语句

++counter, --i

已执行。

实际上这个循环带有continue语句

    for(i=INTEGER; i>0; ++counter, --i){
           if(condition){
               //do stuff
               i+=2;
               continue;
           }
           //...
     }

等同于以下

    for(i=INTEGER; i>0; ++counter, --i){
           if(condition){
               //do stuff
               i+=2;
               goto Label;
           }
           //...
     Label:;
     }

答案 1 :(得分:0)

好的我调试我的代码,在主要结尾处错过了return 0。 这导致错误的返回值。

答案 2 :(得分:0)

你所说的正在发生,不应该发生。逗号运算符组合了两个语句,以便它们作为单个语句执行。如果--1执行,++计数器也应该同时执行。还有其他事情正在发生。