自增:(i++和++i)、(+=和=+)的区别和详解,附带口诀、面试题保证记住

直接上代码,看说明和注解你就懂了!

1.  i++和++

/**
 * @Author: 说谎   说明:自增 (i++和++i)和(+=和=+)的区别,口诀:哪个在前,先计算
 * @Date 2022/3/10 10:15
 */
public class Increment {
    public static void main(String[] args) {
        int i=1;
        //很好记忆:i++是字母在前先赋值,后运算。所以应该是把i先给j,所以j=1,在运算1+1=2,i就变成2了
        int j=i++;
        //++i,++在前是先运算在赋值。所以应该先运算,2+1=3,i就变成3了,再赋值给q,q=3了。
        int q = ++i;
        //所以打印出来就应该是i=3,j=1,q=3.
        System.out.println("i="+i+";j="+j+";q="+q);
        //同样可以变换下顺序自己做一下看看就知道了
    }
}

作业:自己把J=i++的位置和q=i++的位置换一下,看看答案是什么。应该是i=3,j=2,q=2.

2.+=和=+

package com.gao.test.increment;

/**
 * @Author lie
 * @Description
 */
public class Increment {
    public static void main(String[] args) {
        int k = 1;  // k -> 1
        int u = 1;  // u -> 1
        k =+ 1; // 赋值 k = i 这种写法没有意义
        System.out.println("k= "+ k); // 结果是 k = 1

        u += 1; // 相当于 u = u + 1  和其他的/= %=都是一个意思
        System.out.println("u= "+u); // 结果是  u = 2

    }
}

面试题:

package com.gao.test.increment;

/**
 * @Author lie
 * @Description
 */
public class Increment {
    public static void main(String[] args) {
        int i = 1; // i -> 1
        i = i++; // 赋值在java底层使用的是临时变量,所以 ① temp = i ② i = i + 1 ③ i = temp
        System.out.println("i= "+i); // 结果是1

        int j = 1; // j -> 1
        j = ++j; // 赋值在java底层使用的是临时变量,所以 ① j = j + 1 ② temp = j ③ j = temp
        System.out.println("j= "+j); // 结果是2
    }
}

注意:先赋值的意思是:先把值付给临时变量,最后把临时变量的值付给你要付的值,并不是直接就把值赋给你要付的值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值