java中的前++和后++的区别示例代码详解

作者:冷囧囧 时间:2023-09-01 10:15:01 

java中的前加加++和后加加++,有很多人搞的很晕,不太明白!今天我举几个例子说明下前++和后++的区别!

其实大家只要记住一句话就可以了,前++是先自加再使用而后++是先使用再自加!

前++和后++总结:其实大家只要记住一句话就可以了,前++是先自加再使用而后++是先使用再自加!

请大家看下面的例子就明白了!


public class Test {

public static void main(String[] args) {

//测试,前加加和后加加
//前++和后++总结:其实大家只要记住一句话就可以了,前++是先自加再使用而后++是先使用再自加!
int age = 6;
//先自加,再使用(age先自加1,然后再打印age=7,此时age的值在内存中是7)
System.out.println("age=" + ++age);
//先使用,再自加(此时age的值在内存中是7,先打印age=7,然后age再自加1,所以此时打印age=7,但是其实此时age的值在内存中已经是8了)
System.out.println("age=" + age++);
//此时打印出来age=8
System.out.println("age=" + age);
//先自加,再使用(此时age在内存中的值是8,先自加1,age的值在内存中就变成了9,然后再打印age,所以此时打印出9)
System.out.println(++age);
//先使用,再自加(此时age在内存中的值是9,先打印出9,然后age再自加1,自加完后,此时age在内存中的值是10)
System.out.println(age++);
//此时打印age是10
System.out.println(age);
               
                int index = 0;
                String[] names = {"令狐冲", "张无忌", "韦小宝", "杨过", "段誉", "乔峰"};
        //        System.out.println(names[index++]); //打印出令狐冲
        //        System.out.println(names[index]);   //打印出张无忌   
   //以上两行代码注释掉,那么以下两行代码,就会打印出张无忌
   //如果以上两行代码没有注释掉,那么以下两行代码,就会打印出韦小宝
                 System.out.println(names[++index]); //打印出张无忌
                System.out.println(names[index]);  //打印出张无忌
 }
}

java中的前++和后++的区别示例代码详解

java中的前++和后++的区别示例代码详解

java中的前++和后++的区别示例代码详解

PS:下面看下Java中i++和++i的区别

  • 说来惭愧,从事开发工作也有一年时间了,然而在今天的一个业务逻辑里突然发现原来我对i++和++i都没有理解,或者说我之前的理解是错误的。这对于一个有追求的程序猿是不能容忍的。知道之后,迅速恶补学习,现在算是彻底的理解了。

  • 这篇文章可能对于大神没什么用,毕竟技术层次不够,大神追求的都是思想层面的东西。但对于一些初学者的话还是有一些用的,或者有跟我一样的已经入行一些时间了,但对这个理解模糊的(IT界估计也就我一个了 ~~捂脸!)都可以参阅学习,我写的比较详细,相信只要你看,就绝对会有收获

1, i++ 和++i


在区分这两个之前,我们先来了解一下它们的运算规则

int i=1,a=0;

* i++ 先赋值在运算,例如 a=i++,先赋值a=i,后运算i=i+1,所以结果是a==1
  * ++i 先运算在赋值,例如 a=++i,先运算i=i+1,后赋值a=i,所以结果是a==2

看下面程序运行结果,有图有真相:


public class Test3 {
public static void main(String[] args) {
int i=1,a=0;
System.out.println("a=i++===> "+(a=i++));//1
//System.out.println("a=++i===> "+(a=++i));//2
}

}

java中的前++和后++的区别示例代码详解
java中的前++和后++的区别示例代码详解

这里算是基本了解了,那么我们在来一个练习让你更加的理解它们之间的关系


public class Test3 {
public static void main(String[] args) {
int y=0;
int i =0;
y=++y;
y=++y;
y=++y;
y=++y;
y=++y;
System.out.println("y="+y);
i=i++;
i=i++;
i=i++;
i=i++;
i=i++;
System.out.println("i="+i);

}

}

附上结果

java中的前++和后++的区别示例代码详解

是不是感觉有点转过转弯来,如果有这种感觉,那么恭喜你(找到跟我之前症状相同的了,哈哈),你也得好好理解理解了。下来是我添加上详细注释的代码。


public class Test3 {
public static void main(String[] args) {
int y=0;
//注意"="是赋值,"=="才是相等
//这里的y=++y 是先运算在赋值,先运算++y完了后y的值是1,然后在赋值给原来等于0的y
y=++y;// y==0,++y==y+1; 结果y=++y == y+1 == 0+1 ==1
y=++y;// y==1,++y==y+1; 结果y=++y == y+1 == 1+1 ==2
y=++y;// y==2,++y==y+1; 结果y=++y == y+1 == 2+1 ==3
y=++y;// y==3,++y==y+1; 结果y=++y == y+1 == 3+1 ==4
y=++y;// y==4,++y==y+1; 结果y=++y == y+1 == 4+1 ==5
System.out.println("y="+y);//5
int i =0;
// i==0,i++==0; 结果i=i++ == (记住先赋值后运算)i=i,i=i+1(由于是i++运算这里我们输出的i只取先赋值的结果也就是i=i)
i=i++;
i=i++;
i=i++;
i=i++;
i=i++;
System.out.println("i="+i);//0
System.out.println("================");//1

}

}

来源:https://blog.csdn.net/czh500/article/details/79665981

标签:java,前++,后++
0
投稿

猜你喜欢

  • 关于android连续点击出现多个Activity界面的解决方法

    2023-03-29 12:20:43
  • Java中的length和length()深入分析

    2022-01-23 06:33:01
  • Spring Cache框架应用介绍

    2023-06-15 22:32:59
  • SpringBoot中多环境配置和@Profile注解示例详解

    2023-11-29 05:39:04
  • springboot实现多文件上传功能

    2022-05-31 22:49:10
  • jvm虚拟机类加载机制详解

    2021-10-21 08:33:28
  • Android图片添加水印图片并把图片保存到文件存储的实现代码

    2022-06-03 21:48:54
  • Android开发中自定义 editText下划线

    2023-03-30 13:40:35
  • java二维数组指定不同长度实例方法

    2021-07-13 06:02:09
  • mybatis输出SQL格式化方式

    2021-06-18 18:19:45
  • Java绘制迷宫动画并显示的示例代码

    2022-04-06 22:37:45
  • C# 显示、隐藏窗口对应的任务栏

    2023-06-13 03:57:32
  • c#使用Unity粒子实现炮塔发射系统

    2023-11-04 19:05:19
  • Android中使用Toast.cancel()方法优化toast内容显示的解决方法

    2021-12-14 05:17:03
  • C#静态static的用法实例分析

    2022-06-30 09:37:27
  • Netty分布式高性能工具类异线程下回收对象解析

    2023-07-09 21:02:43
  • SpringBoot整合ES-Elasticsearch的实例

    2022-12-29 03:30:40
  • Kotlin Thread线程与UI更新详解

    2021-10-10 00:18:22
  • Flutter WebView 预加载实现方法(Http Server)

    2023-06-25 23:14:35
  • spring @Validated 注解开发中使用group分组校验的实现

    2021-09-29 14:07:22
  • asp之家 软件编程 m.aspxhome.com