i++ 和++i使用的不同点是i++是程序完毕后自增,++i是程序开始前自增。++i好理解,但i++我还理解不好,程序完毕后自增,怎么算是程序执行完呢?
这样l会不会自增呢? 答案不会。l为0
这样呢? 答案也不会自增,l为8
那么什么情况下l会自增呢?什么情况下叫做程序完毕后自增呢?
这样才会自增,l为1。
总结:只有i++之后遇到含有i的表达式时才会自增。
看几个示例:
分析i=i++ + ++i;
先执行i++,i为0,再执行++i,i为1,所以i=0+1=1,但i++操作还要自增,所在最后i=2;
分析j = ++j + j++ + j++ + j++;
j = 1 + 1 + 2 + 3 = 7
分析k = k++ + k++ + k++ + ++k;
k = 0 + 1 + 2 + 4 = 7
- int l = 0;
- l = l++;
- System.out.println(l);
- int l = 0;
- l = l++ + 8;
- System.out.println(l);
那么什么情况下l会自增呢?什么情况下叫做程序完毕后自增呢?
- int l = 0;
- l = l++ + l;
- System.out.println(l);
总结:只有i++之后遇到含有i的表达式时才会自增。
看几个示例:
- package plusplus;
- public class Test {
- public static void main(String[] args) {
- int i = 0;
- i = i++ + ++i;
- System.out.println(i);
- int j = 0;
- j = ++j + j++ + j++ + j++;
- System.out.println(j);
- int k = 0;
- k = k++ + k++ + k++ + ++k;
- System.out.println(k);
- }
- }
先执行i++,i为0,再执行++i,i为1,所以i=0+1=1,但i++操作还要自增,所在最后i=2;
分析j = ++j + j++ + j++ + j++;
j = 1 + 1 + 2 + 3 = 7
分析k = k++ + k++ + k++ + ++k;
k = 0 + 1 + 2 + 4 = 7