簡體   English   中英

Java 后綴增量

[英]Java postfix increment

我知道 x=y++ 本質上是 y=x 和 x=x+1 的簡寫。

但是,我看不到它可以在什么情況下使用。 為什么我要增加一個變量並將其舊值分配給一個新變量。

如果你沒有發現需要的東西,最好不要使用它。 請記住,不要盡可能聰明地編寫代碼。 將其啞巴,以便您可以調試它。

但是,既然它是一項功能,您當然可以使用它。

import java.util.*;
public class MyClass {
    public static void main(String args[]) {
      ArrayList<Integer> l = new ArrayList<>();
      l.add(0); l.add(1); l.add(2);
      int s = 0;
      while (s<l.size()-1) {
          System.out.println(l.get(++s));
      }
    }
}

這打印 1, 2

import java.util.*;
public class MyClass {
    public static void main(String args[]) {
      ArrayList<Integer> l = new ArrayList<>();
      l.add(0); l.add(1); l.add(2);
      int s = 0;
      while (s<l.size()) {
          System.out.println(l.get(s++));
      }
    }
}

這打印 0, 1, 2

也可以在 arrays 上完成。 arr[i++], a[++i], a[i--], a[--i] 您也可以執行類似 while(i++ > 0) 的操作。

我猜它主要有兩個目的。

  1. 在 1 中壓縮多個極短的行。(如果您使用 Java,這實際上在編碼測試中很方便)
  2. 當你搞砸了,必須瘋狂地給一個變量加 1 和減 1 時,你可以使用 ++v、v++、--v、v-- 而不是一堆 v-1、v+1、v+2、v -2, (v-1)+1... (雖然我認為在這些情況下使用后綴、前綴更有可能編寫錯誤的程序)

如果您真的想使用它,.. 至少避免在同一語句的同一變量上使用 2 個或多個后/前綴表示法.. 它真的很容易出錯。 例如,

x++ - ++x; // -2
++x - ++x; // -1
x++ - x++; // -1
++x - x++; // 0

我可以解釋為什么這四個語句被評估為這樣的結果,但我不會在編碼測試或任何開發中使用這些模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM