自增加应该注意的

示例:java

public class Client{class

        public static void main(String[] args){变量

    int count=0;mock

for(int i=0;i<10;i++){mock

     count=count++;
static

    }co

    System.out.println("count="+count);   
return

    }
void

}

你算出的结果是多少?10吗?恭喜你错了,运行一下,答案是0

为何???

看看java的处理步骤

第一步:JVM把count的值(其值是0)拷贝到临时变量区

第二步:count的值加1,这时候count的值是1

第三步:返回临时变量区 的值,注意这个值是0,没有修改过

第四步:返回值赋值给count,此时count值被重置成0

也能够这样去解释count=count++;这条语句

public static int mockAdd(int count){

    //先保存初始值

    int temp=count;

//作自增操做

    count=count+1;

//返回原始值

return temp;

}

这应该和你的本意不同吧。那么怎么去解决这个自增加的陷阱呢。

只须要把count=count++;改为count++;便可。即保持一致

相关文章
相关标签/搜索