自增自减运算符

自增、自减运算符分为前置和后置,前置很好理解,这里不多解释,这里只讨论后置。
1:当a++单独使用时,a++和++a是一样的。

public class Demo {
    public static void main(String[] args) {
        int a = 10;
        a++;
        System.out.println("a = "+a);
    }
}
a = 11

2:当a++不是单独使用时,它是先执行再进行自增。
举个例子:

public class Demo {
    public static void main(String[] args) {
        int a = 10;
        System.out.println(a++ + ++a);  // 22
    }
}

分析一下输出结果:
把“+“左边的”a++ 称作表达式1,右边的“++a”称作表达式2。
上面说过“当a++不是单独使用时,它是先执行再进行自增”。
代码中的a++是后置++,因此先用a此时的值(10)参与运算,那么表达式1的值就是10,然后a再自增,a自增后的值是11(虽然a的值变成了11,但是表达式1的值并不会改变),然后再执行“+”右边的++a,由于是前置++,因此是先自增再执行,此时a的值由之前的11变成12,这时表达式2的值就是12,表达式1+表达式2的结果就是10 + 12 = 22。

再来一个栗子:

public class Demo {
    public static void main(String[] args) {
        int a=1,b=1,c;
        c = (a++)>b ? a++ : (b++);
        System.out.println("c = "+c);  //1
        System.out.println("a = "+a);  // 2
        System.out.println("b = "+b);  // 2
    }
}

输出:

c = 1
a = 2
b = 2

分析:
过程分析
最后一个栗子(C语言):

int main()
{
    int a = 1,b = 2, c;
    c = (a++,a + b++);  
    printf("%d\n",c);
    return 0;
}

分析:
在这里插入图片描述

后置++懂了,后置- -也是一样的操作。

最后强调一点:不要把变量的值当成了表达式的值,变量的值可改变,但表达式的值是固定的。

///\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值