• Java语言基础(九)


    Java语言基础(九)

    一.自增运算(++) 自减运算(--)

             i++ 就是将i+1再赋给 i

             i-- 是将i-1再赋给 i

                      

                              

     

                       对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再赋给i

                       ++j 与 j++ 也没什么区别,将j的值加1后,再赋给j

     

     

     

     

     

                       但在这里, i++ 与 ++i 是有区别的

                               

               

                               

                      

                                输出结果为什么是1,考虑一下

     

                               

                                初始的时候 i=1, 那么加1后,i 为什么还是1

     

     

                               

                               

                                首先需要说明的是,i=i++ 包含赋值运算(=) 自增运算(++)

     

                                其中,自增运算(++)的优先级要高于赋值运算(=)

                               

                                下图是从网上找的

     

                                                 

                               

                                ++ 的优先级是2,赋值运算应该是14,数值越小,优先级越大

     

                               

                                int i=1;

                                i=i++执行过程

                                         (1).i++的优先级高,执行++,再执行=

                                         (2).i++,先取i的值作为表达式 i++的值,然后将i的值加1,

                                                   此时,i++的值是1,而i的值的是2

                                       (3).再将i++的值(1)赋给i,将2给覆盖了,此时i的值是1

                           i 的值的确变了,由1变成了2,但又由2变成了1  所以i的值现在是1

                      

                      

                         对i=++i来说,开发软件他会给出

                                           The assignment to variable i has no effect的提示

                          

              

                         提示上说,i=++i,对i没有影响

                 我们先分析一下(i=++i)这条语句

                                (1).++的优先级高,执行++,再执行=

                                (2).++i,先将i加1,然后再将 i 的值赋给表达式++i

                                                   此时,i的值的是2, 表达式(++i)的值也是2

                                (3).再将++i 的值赋给i

                       i 的值的变化过程,由1变成了2,又由2变成了2

                       之所以,出现那句提示,那是因为,在++i执行完后,i的值已经是2,

                       再将++i 的值赋给i ,现在对i的没影响了(都是2),所以才出现那句

                      上面的可以这样写:

                               

             

                      

                      自减运算 (i--)

                                int i=1;

                          i=i--;

                                (1).--的优先级高,执行--,再执行=

                                (2).i--,先取i的值,然后赋给表达式  i-- ,再将i减1

                                             此时,i的值的是0, 表达式 i-- 的值也是1

                                (3).再将i--的值赋给i

                            i 的值的变化过程,由1变成了0,又由0变成了1

                       与  i=++i  一样的,这样 i=--i 写,也会出现提示

                               

                       自减运算(--i)

                                int i=1;

                                i=--i;

                                (1).--的优先级高,执行--,再执行=

                                (2).--i,先将i减1,然后赋给表达式  --i

                                              此时,i的值的是0, 表达式 --i 的值也是0

                                (3).再将 --i的值赋给 i

                           i的值的变化过程,由1变成了0,又由0变成了0

            上面的可以这样写:

              

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
    如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
    如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【刘超★ljc】。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    洛谷 PT2 First Step (ファーストステップ)
    Mask-D、绮梦与空谷幽兰
    僕らの手には何もないけど、
    魔都蹭课、观光、酱油记
    竞赛计划
    糖果
    点名
    数字对
    字符串哈希
    负环
  • 原文地址:https://www.cnblogs.com/codeOfLife/p/3667568.html
Copyright © 2020-2023  润新知