zoukankan      html  css  js  c++  java
  • Java: 隐性赋值(Implicit Assignment)

    初学 Java 时,我总是记不住如何区别 i++ 和 ++i。在《算法(第四版)》一书中第16页,作者提到:

    ** ++i ** is the same as i = i+1, and has the value i+1 in an expression. The code ** i++ ** is the same except that the expression value is taken ** before ** the increment, ** not after **.

    即,
    i++ 在表达式中使用的时候,该表达式的值取的是 ++ ** 之前的 i ** 的值。
    ++i,则相反,表达式的值取的是 ++ ** 之后 的 i ** 的值。

    这里要注意区分两个值:
    1。i 的 值
    2。表达式(i++ 或 ++i) 的值

    无论 表达式是 i++ 或 ++i, i 的值都是增加 1, 而表达式的值则不一定。

    让我们来看一下代码:++i

            int i=0;
            for (int j=0; j<2; j++){
                System.out.println("before: i = "+ i);
                System.out.println("++ i = " + (++i));
                System.out.println("after: i = "+ i);
            }
    

    运行后的结果:表达式的值取得是 当前 i 的值 加 1

    before: i = 0
    ++ i = 1
    after: i = 1
    before: i = 1
    ++ i = 2
    after: i = 2
    

    再试一下 ++i:

    int i=0;
            for (int j=0; j<2; j++){
                System.out.println("before: i = "+ i);
                System.out.println("i ++ = " + (i++));
                System.out.println("after: i = "+ i);
            }
    

    运行后的结果:表达式的值取得是当前的 i 的 值。

    before: i = 0
    i ++ = 0
    after: i = 1
    before: i = 1
    i ++ = 1
    after: i = 2
    
  • 相关阅读:
    生成器,生成器表达式。
    device busy
    memcached
    ps f
    Eviews9.0---软件安装
    免费提取百度文库 doc 文件
    Matlab---length函数
    Matlab 路径函数
    matlab中disp函数的简单用法
    MATLAB---dir函数
  • 原文地址:https://www.cnblogs.com/learnbydoing/p/6718210.html
Copyright © 2011-2022 走看看