首页 > 分享 > i++ 、 ++i和i+=1、i=i+1 的问题

i++ 、 ++i和i+=1、i=i+1 的问题

最新推荐文章于 2024-09-27 13:44:28 发布

闭着眼睛写BUG 于 2019-04-19 22:36:40 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。

逻辑运算中,关于i++ 、 ++i和i+=1、i=i+1 等这类问题是也笔试必考内容之一,基础中的基础。如果不会,那就已经可以看出你个人的基础水平了。虽然看上去简单,但是不懂原理是不行的。只有了解原理才能记忆最深

i++ 和 ++i 的区别:

i++:先赋值,在相加,
++i:先相加,在赋值

实战以下,看以下代码

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

12345678910111213141516171819

执行结果为:1,2,0,2;
我们获取以下方法执行时的指令集

public static int print1() { int i = 0; return i++; } public static int print2() { int i = 0; return ++i; } 12345678

查看汇编指令如下

在这里插入图片描述

public static int print1(); Code: 0: iconst_0//将int类型常量0压入栈 1: istore_0//将int类型值存入局部变量 2: iload_0//第一个int型局部变量进栈 3: iinc 0, 1//把一个常量值加到一个int类型的局部变量上,0 表示局部变量索引 6: ireturn//将操作数栈栈顶的值返回个此方法的调用者 LineNumberTable: line 5: 0 line 6: 2 public static int print2(); Code: 0: iconst_0//将int类型常量0压入栈 1: istore_0//将int类型值存入局部变量 2: iinc 0, 1 //把一个常量值加到一个int类型的局部变量上,0 表示局部变量索引 5: iload_0//第一个int型局部变量进栈 6: ireturn //将操作数栈栈顶的值返回个此方法的调用者 LineNumberTable: line 5: 0 line 6: 2

123456789101112131415161718192021 iload_0 指将整型指存入操作数栈iinc 用于实现局部变量的自增操作。在所有字节码指令中,只有该指令可直接用于操作局部变量。ireturn 是将操作数栈栈顶的值返回个此方法的调用者

i=i++到底是怎么执行的

public class Inc { public static void main(String[] args) { Inc inc = new Inc(); int i = 0; inc.fermin(i); i= i ++; System.out.println(i); } void fermin(int i){ i++; } } //答案是0; inc.fermin(i); 是一个干扰项,考值传递还是引用传递 1234567891011121314 i=i+1 和 i+=1 的区别

i+=1 会进行自动进行类型转换,相当于如下效果:

short i =1; i=(short) (i+1); 12

相关知识

下面程序段的执行结果为 I=4 A=5 Do I=I+1 A=A+2 Loop Until I>=7 PrintI=;I PrintA=;A
程序段:int i=1, s=0; while(i++) if(!(i%3))
int i=0; while(i=1) i++; while循环执行的次数是(
密码 pasuwado题解
I am here! QwQ
猫树 学习笔记
找出数组a[]中符合a[i]+a[j]=K的数对
C语言的问题求教
最近对问题
计算下列程序段中 X= X+l 的语句频度。 for(i=1;i

网址: i++ 、 ++i和i+=1、i=i+1 的问题 https://m.mcbbbk.com/newsview544342.html

所属分类:萌宠日常
上一篇: 猫眼睛里进毛了怎么办
下一篇: 原创 【