【问题标题】:Java array[i]++ vs ++array[i]Java 数组[i]++ 与 ++数组[i]
【发布时间】:2014-06-20 11:44:51
【问题描述】:

我有一个整数数组:

private int array[];

如果我也有一个叫add的方法,那么下面的有什么区别:

public void add(int value) {
   array[value]++; VS ++array[value];
}

附言在单独的注释中, int array[] 与 int[] array 有什么区别? 谢谢

【问题讨论】:

    标签: java arrays indexing


    【解决方案1】:

    int array[] vs int[] array 有什么区别?

    没有。像int[] array这样创建数组只是java convetion,更清晰。

    如果我也有一个叫做add的方法,那么两者有什么区别 以下:

       public void add(int value) {
           array[value]++; VS ++array[value];
        }
    

    在这段代码中,没有任何区别。但总体上的区别是:

    int x = 5, y = 5;
    
    System.out.println(++x); // outputs 6
    System.out.println(x); // outputs 6
    
    System.out.println(y++); // outputs 5
    System.out.println(y); // outputs 6
    

    //编辑

    正如下面 cmets 中提到的Vince Emigh,这也应该是答案......

    如您所知,++ 将数字加 1。如果您在 变量,您的程序将增加数字,如果需要 立即(例如当您在 println 参数中递增时), 返回值在递增之前的值(导致您的 5)。 在你的 var 之前添加它会导致你的程序增加 立即值,并返回增加的值。如果你不使用 立即变量,就像你打印它时所做的那样,然后 这真的没关系,因为它们都在增加。

    【讨论】:

    • 不错的答案。 5 分钟内 +1(明天在 UTC)。但是,您可以用文字添加 ++x 和 y++ 的实际作用。
    • @AnubianNoob 如您所知,++ 将数字加 1。如果您在变量之后调用它,您的程序将增加数字,并且如果需要立即增加(例如当您在 println 中增加params),返回递增之前的值(导致你的 5)。在你的 var 之前添加它会导致你的程序立即增加值,并返回增加的值。如果你不立即使用变量,就像你打印它时那样,那么这真的没关系,因为它们都会增加
    • 我知道,但它应该包含在答案中。
    • @AnubianNoob 我没有写这个答案。我今天也多次看到/回答过这个问题(stackoverflow.com/questions/23448740/… 一个例子),所以我没有费心做出自己的官方回答,因为这里已经有一个了
    • @VinceEmigh 我已经编辑了我的答案,抱歉我应该提一下 :)
    【解决方案2】:

    这个例子将使前增量和后增量更清晰 在 pre-increment 中,值在操作之前增加,在 post-increment 中,它在操作之前完成。

            arr[0]=1;
            int var1=arr[0]++;
            System.out.println(var1);
            arr[0]=1;
            int var2=++arr[0];      
            System.out.println(var2);
    

    这里我正在做一个作业,如果我有一个 post increment ,增量发生在赋值之后。如果我有一个预增量,则增量发生在分配之前

    输出

    1
    2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多