原文:
http://weknow619.iteye.com/blog/2332526
public class Ques1024 {
public static void main(String[] args) {
int num = 0;
for(int i = 0; i < 100; i++){
num = num++;
}
System.out.println("num="+num);
}
}
运行结果是0
num = num++;
1 将num=0 赋值给num
2 num自加 后num=1
类似:
int i = 15;
i = i++;
System.out.println("i:" + i);
输出15
关于前置++和后置++的区别,一直是这样子认为的:前置++是先将变量的值加1然后使用加1后的值参与运算;而后置++是先使用该值参与运算,然后再将该值加1。前置和后置一样在参与运算之前都会将变量的值加1。
所以上面的解释不通:
前置++是将变量的值加1后,使用增值后的变量进行运算的,而后置++是首先将变量赋值给一个临时变量,接下来对变量的值加1,然后使用那个临时变量进行运算。
int i = 2;
int j = i++ * 3;
等价于
int temp = i;
i =i + 1;
j = temp * 3;
所以:
num = num++;
等价于
int temp = num; // temp=0 num=0
num = num + 1; // num=1
num = temp; // num=temp = 0
~~~
public class Ques1024 {
public static void main(String[] args) {
int num = 0;
for(int i = 0; i < 100; i++){
num = ++num;
}
System.out.println("num="+num);
}
}
num = ++num;
效果
++num;
num = num;
运行结果100
1 num自加 后num=1
2 将num=1 赋值给num
下一次自加为 2 然后赋值,最后得到100
有点意思的每日一题-分析 (来自iteye)
猜你喜欢
转载自cuityang.iteye.com/blog/2332994
今日推荐
周排行