java 求 i、j、k 的值?自增题

java 求 i、j、k 的值?自增题,第1张

java 求 i、j、k 的值?自增题
 public static void main(String [] args) {
        int i=1;
        i=i++;
        int j=i++;
        int k= i+ ++i*i++;
        System.out.println("i="+i);
        System.out.println("j="+j);
        System.out.println("k="+k);

    }

答:i=4 j=1 k=11

解:int i=1,i=i++ 赋值过程 :i=1-->i=i++,i先压入 *** 作数栈中为1,i++ 自增+1 ,i局部变量为2, *** 作数栈为1 又赋值给i 。

int j=i++ 赋值过程:把i压入 *** 作数栈为1,i++ 自增 +1 int i=2局部变量 ; *** 作数栈赋值给了j,所以j等于1

int K=i+ ++i *i++ 赋值过程:i 现在等于2,把2压入 *** 作数栈中,++i 先自增 +1 ,i=3,把3压入 *** 作数栈中,i++ 先把i压入 *** 作数栈中为3 ,再自增i=4,那么现在 *** 作数栈中 2+3*3=11赋值给K。

总结:

      赋值最后计算,等于右边的从左到右加载值依次压入 *** 作数栈,实际算哪个看运算符,自增自减直接修改变量的值,不经过 *** 作数栈,赋值之前,临时结果也在 *** 作数栈中

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5563674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存