当前位置: 首页 > 面试题库 >

Java增量和赋值运算符

翟英达
2023-03-14
问题内容

我对post 和pre 运算符感到困惑,例如以下代码

int x = 10;
x = x++;

sysout(x);

会打印10吗?

它打印10,但我希望它应该打印11

但是当我这样做

x = ++x; instead of x = x++;

它会按照我的预期输出11,所以为什么x = x ++; 不会改变x的值?


问题答案:

否,正确的打印输出为10。理解结果背后原因的关键是预分配++x和后x++分配复合分配之间的差异。当使用预增量时,表达式的值在执行增量后获取。但是,当您使用后递增时,表达式的值
递增 之前 被获取,并 递增结果写回到变量之后被存储以供以后使用。

这是导致您看到的事件的顺序:

  • x 被安排了 10
  • 由于++处于后递增位置,因此x10)的当前值被存储以供以后使用
  • 的新值11存储到x
  • 的临时值10会存储在中x,并直接写入其中存储的临时值11


 类似资料:
  • 赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。 其语法格式如下所示: 在 Java 语言中,“变量名称”和“表达式”内容的类型必须匹配,如果类型不匹配则需要自动转化为对应的类型。 赋值运算符的优先级低于算术运算符,结合方向是自右向左;不是数学中的等号,它表示一个动作,即将其右侧的值送到左侧的变量中(左侧只允许是变量,

  • 我正在讨论前缀增量运算符,我们似乎遇到了分歧。 运行此代码时: 第二行是否等于: x=(x=x 1)OR x=(x 1) 很难区分差异,因为结果是相同的(两者都导致的值为1) 我认为,当赋值的左侧是变量本身时,值不会保存到原始变量。 我的对手不同意,认为只要使用操作符,值就会保存到原始变量中。 我们谁是对的?

  • 问题内容: 我有以下代码: 我的预期输出在注释中。实际输出如下: 我对函数调用和增量运算符感到困惑。有人可以解释一下实际结果吗? 问题答案: 首先你需要知道的区别和; 如果是: 首先,将使用当前值,然后将其递增。这意味着您将获得操作的当前值,并且如果您下次使用x将获得递增的值; 如果是: 首先,当前值将增加,然后将使用它(增加的值),这意味着您将在此操作中获得增加的值,而在此操作之后将获得其他值。

  • 主要内容:基本赋值运算符,扩展后的赋值运算符赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。 Python 中最基本的赋值运算符是等号 ;结合其它运算符, 还能扩展出更强大的赋值运算符。 基本赋值运算符 是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子: 连续赋值 Python

  • C++提供了几个赋值运算符可以缩写赋值表达式。例如下列语句: c = c + 3 可以用加法赋值运算符(addition assignment operator)“+=”缩写如下: c += 3 +=运算符将运算符右边表达式的值与运算符左边表达式的值相加,并将结果存放在运算符左边表达式的值中。下列形式的语句: variable = variable operator expression; 其中

  • 问题内容: 当我运行以下示例时,我得到输出0,2,1 我不明白为什么输出是0,2,1而不是0,2,2 问题答案: 意思是现在。调用打印,但返回0,所以和 在此之前,现在想象被调用并替换为0 所以 现在它将是 用简单的话(从这里 @ Piotr) “ i = i ++”大致翻译为 另一个这样的例子: 同样的基本原理