++i和i++的区别

JAVA
自增自减运算符 ++和–
自增自减运算符,只能用于变量,效果是变量自增或者自减1。自增运算符有两种用法:
前加加(++i) 和 后加加(i++)。无论是++i还是i++,i都是自增,区别就是++i的结果是自增以后的值,而i++的结果是自增以前的值。

public class AddAdd{
    public static void main(String[] args){
        int i = 1;
        int j = 1;
        System.out.println(++i); // 2
        System.out.println(i);   // 2
        System.out.println(j++); // 1
        System.out.println(j);   // 2
    }
}

举个例子:

public class TestSelf{

    public static void main(String[] args){

         int i = 3;
         System.out.println("i = " + i); //i = 3

         //表示让i变量自身的数值加1, i = 4; 一元运算符  
         //i++ 整体叫做表达式    i叫做操作数   ++叫做操作符/运算符
         i++;
         System.out.println("i = " + i); // i = 4

         //表示让i变量自身的数值加1,i = 5
         ++i;
         System.out.println("i = " + i); // i = 5

         System.out.println("------------------------------------------");
         //区分一下i++表达式的结果和i自身的结果
         //打印i++这个表达式的结果,后++表示先使用i再++ 
         //于是表达式的结果就是i++之前的数值,也就是5
         //表达式计算完毕后i自身要++,i变成了6
         System.out.println("i++ = " + i++); //5 i++表示先打印i再执行++
         System.out.println("i = " + i);     //6
         //前++表示先++再使用,也就是让++之后的结果作为表达式的结果
         System.out.println("++i = " + ++i); //7 ++i表示先++再打印出来
         System.out.println("i = " + i);     //7

         System.out.println("------------------------------------------");
         //表示先将表达式的数值赋给ic,然后i自己再加1
         int ic = i++;
         System.out.println("ic = " + ic);//7 
         System.out.println("i = " + i);//8

         //表示先将i自己的数值加1,然后赋给id
         int id = ++i;
         System.out.println("id = " + id);//9
         System.out.println("i = " + i);//9
    }
}

相关比较坑的面试题
请写出下列输出的值

public class TestSelf{

    public static void main(String[] args){
         int i = 3;
         System.out.println("i = " + i); //
         System.out.println(i++ + ++i);  //
         System.out.println("i = " + i); //

    }
}

答案:

public class TestSelf{

    public static void main(String[] args){
         int i = 3;
         System.out.println("i = " + i); //3
         System.out.println(i++ + ++i);  //3 + 5 = 8
         //i++表示先执行其他运算再执行++,所以i=3
         //i在此前i++的表达式运算之后已经变成4,所以++i等于5
         //所以3 + 5 = 8
         System.out.println("i = " + i); //5

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值