gpt4 book ai didi

java复合赋值运算符和赋值运算符

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:33:04 24 4
gpt4 key购买 nike

我在理解 java 中的复合赋值运算符和赋值运算符时遇到一些问题。有人可以向我解释这两个运算符真正 是如何工作的吗? (在某处我找到了一个非常好的示例代码,使用临时变量来解释工作但遗憾的是我已经丢失了它。)非常感谢你。这是我为它们编写的小示例代码(我已经知道前缀和后缀运算符之间的区别):

       int k = 12;
k += k++;
System.out.println(k); // 24 -- why not (12+12)++ == 25?

k = 12;
k += ++k;
System.out.println(k); // 25 -- why not (1+12)+(1+12) == 26?

k = 12;
k = k + k++;
System.out.println(k); // 24 -- why not 25? (12+12)++?

k = 12;
k = k++ + k;
System.out.println(k); // 25 -- why not 24 like the previous one?

k = 12;
k = k + ++k;
System.out.println(k); // 25 -- OK 12+(1+12)

k = 12;
k = ++k + k;
System.out.println(k); // 26 -- why?

最佳答案

请注意,在所有情况下,对 k 的赋值会覆盖右侧可能发生的任何递增。

内联评论:

   int k = 12;
k += k++;
System.out.println(k); // 24

k++ 表示在您使用该值后 递增,因此这与编码 k = 12 + 12

   k = 12;
k += ++k;
System.out.println(k); // 25

++k 表示在您使用该值之前递增,因此这与编码相同 k = 12 + 13

   k = 12;
k = k + k++;
System.out.println(k); // 24

k++ 表示在您使用该值后 递增,因此这与编码 k = 12 + 12

   k = 12;
k = k++ + k;
System.out.println(k); // 25

k++ 表示在您使用该值后 递增,因此这与编码 k = 12 + 13

   k = 12;
k = k + ++k;
System.out.println(k); // 25

++k 表示在您使用该值之前递增,因此这与编码相同 k = 12 + 13

   k = 12;
k = ++k + k;
System.out.println(k); // 26

++k 表示在您使用该值之前 递增,然后再次使用该值,因此这与编码相同 k = 13 + 13

关于java复合赋值运算符和赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7408877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com