区分:i++ 与 ++i

1.是什么

        自增(Increment)是编程中常见的一种操作,用于将变量的值增加1。在大多数编程语言中,自增有两种形式:前缀自增(++i)后缀自增(i++)。这两种形式在表达式中的行为略有不同,主要区别在于自增操作发生的时机。

一般记忆:
  • 前缀自增(++i)先增加1后赋值
  • 后缀自增(i++)先赋值后增加1

    让我们来看两道例题吧!(大家可以试着做做,做完后可以对答案喔)

例题①:

public class Test {
    public static void main(String[] args){
    int i = 9;
    i++;
    System.out.println(i);
    }
}

例题②: 

public class Test {
    public static void main(String[] args){
    int i = 9;
    ++i;
    System.out.println(i);
    }
}

答案:例题①和②都是10

解释:例题①是先赋值后增加1,但是i++并没有赋值这步操作,因为没有变量接收所以它直接自增1后输出(下面我会再举个例子进一步解释)

例题②:先增加1后赋值,自增1后输出来。

如果对例题①有困惑的小伙伴可以再看例题③:

public class Test {
    public static void main(String[] args){
    int i = 9;
    i = i++;
    System.out.println(i);
    }
}

答案:9

仔细对比发现:不同点在于有没有变量,有变量的情况下,i++是先赋值后增加1,所以i直接赋值就是9,在输出结果之后再增加1。

总结:看自增前是否有变量!!!

注意这种情况:

public class Test {
    public static void main(String[] args){
        int i = 9;
        System.out.println(i++);
    }
}

        像这种直接输出的情况等同于上面的有变量赋值的情况,可以这么理解:赋值变量 i 再进行输出相当于直接输出i++,这里也是有变量赋值的过程,遵循先赋值再自增!!!输出结果是9


下面为了加强巩固,我们再看两道例题:

public class Example {
    public static void main(String[] args) {
        int a = 5;
        int b = a++; 
        System.out.println("a = " + a); 
        System.out.println("b = " + b); 
    }
}

答案:a=6,b=5。    b被赋值为a的当前值5,然后a自增为6

增加难度!!!

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

答案:i=5, j=12

解释:

#红色标记是步骤,蓝色圈圈是对应的值,j最后的结果是蓝色圈圈相加


1.1. 适用类型

  • 自增运算符(++)只能用于整数类型的变量,包括byteshortintlong等。它们不能用于浮点数(如floatdouble)或字符(char)类型的变量,因为这些类型的变量增加1在逻辑上可能不是简单的递增操作(特别是对于浮点数和字符)。

1.2. 注意事项

  • 自增运算符只能用于变量,不能用于常量或表达式的结果。例如,1++(x + 1)++都是非法的,因为它们试图对常量或表达式的结果进行自增操作。

        

        好啦,相信大家都掌握好这些知识啦,还有什么建议或补充欢迎来评论区喔!


你可能感兴趣的方面:

       #你真的了解 强制类型转换吗?点击跳转
       #你还记得自动类型转换吗?点击跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值