1

これを実行しようとすると、次のコードの出力は "6" として宣言されます。

これを考えてみると、「k += 3 + ++k;」という式は、k = k + (3 + ++k); と評価されるべきでしたが、この場合、出力は 7 になるはずでした。 k = k + 3 + ++k; と評価されたように、結果は 6 になりました。

式が " k + (3 + ++k); ではなく "k + 3 + ++k" と評価された理由を誰か説明してもらえますか?

public class TestClass {

public static int m1(int i){
    return ++i;
}

public static void main(String[] args) {

    int k = m1(args.length);
    k += 3 + ++k;
    System.out.println(k);
}

}

4

2 に答える 2

0

オペレーターの公式ドキュメントによると

代入演算子を除くすべての二項演算子は、左から右に評価されます。代入演算子は右から左に評価されます。

So +は評価されleft-to-right、 as 代入演算子は評価されますright to left.

今、あなたは正しい答えを得ましたか??

于 2013-08-03T19:45:37.030 に答える