return返回语句中i++、i += 1、i = i + 1的区别

如果这三个表达式是各自独立一行的,则表示的意思都是加1,但是若置于return返回语句中则大不相同

i++:

/**
 * 测试 i++
 */
public class test1 {
    public static void main(String[] args) {
        int i = 10;
        int x = get(i);
        System.out.println(x);
    }

    public static int get(int i){
        try {
            System.out.println(i/0);
            i++;
        }catch (Exception e){
            return i++;
        }finally {
            return i++;
        }
    }
}
//结果:11

.

i = i + 1:

/**
 * 测试 i = i+1
 */
public class test1 {
    public static void main(String[] args) {
        int i = 10;
        int x = get(i);
        System.out.println(x);
    }

    public static int get(int i){
        try {
            System.out.println(i/0);
            i = i + 1;
        }catch (Exception e){
            return i = i + 1;
        }finally {
            return i = i + 1;
        }
    }
}
//结果:12

.

i += 1:

/**
 * 测试 i += 1
 */
public class test1 {
    public static void main(String[] args) {
        int i = 10;
        int x = get(i);
        System.out.println(x);
    }

    public static int get(int i){
        try {
            System.out.println(i/0);
            i += 1;
        }catch (Exception e){
            return i += 1;
        }finally {
            return i += 1;
        }
    }
}
//结果:12

.

由此可见:
*i = i + 1i += 1结果一样
*i++则是因为先用后加,导致最后一次还没来得及加1,就已经return结束程序了

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页