i++和++i的区别

1、定义

++操作属于单目运算符,算数运算符,可用在变量前或变量后。

2、特点

以++i和i++为例子说明

  • C++中,++i返回左值,i++返回右值,即++i = 2正确,i++ = 2错误,当然,Java中2种写法都会编译报错,仅作拓展认知;
  • 如果单行语句仅仅使用自增、自减操作,不会有任何区别,问题都出现在复合语句中使用自增、自减操作;
  • 对于复合语句的判断,记住一点,++i返回的是自加完成后的i,i++返回的是原始i;
  • 使用原则:单行语句用 i++;表达式内部用(i+1);索引永远只用[i]或者[i+1],先加或者后加写成两行。

3、练习

@Slf4j
public class TestPP {

    public static void main(String[] args) {
        test1();
        test2();
        test3();
    }

    static void test1() {
        int a = 0;
        for (int i = 0; i < 99; i++) {
            // 这里是个陷阱,看清楚,对于复合表达式,a++返回的是原始值0
            a = a++;
        }
        System.out.println(a); // 0
    }

    static void test2() {
        int b = 0;
        for (int i = 0; i < 99; i++) {
            b = ++b;
        }
        System.out.println(b); // 99
    }

    static void test3() {
        Integer a = 0;
        int b = 0;
        for (int i = 0; i < 99; i++) {
            a = a++;
            b = a++;
        }
        System.out.println(a); // 99
        System.out.println(b); // 98
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值