首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候带有后缀运算符的变量实际上是递增的?

什么时候带有后缀运算符的变量实际上是递增的?
EN

Stack Overflow用户
提问于 2015-10-16 18:23:48
回答 3查看 64关注 0票数 2

假设我有以下代码:

代码语言:javascript
运行
复制
int x = 5;
System.out.println(x++);              // Will print 5
System.out.println("Random code");    // Will write "Random code" 
System.out.print(x):                  // Will write 6

我的问题是:在哪一行上x实际上是递增的?就在后缀之后?还是就在变量按顺序调用之前?

我听说过序列点与后缀和前缀运算符有关。这就是我问的主要原因。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-16 18:30:32

x的值将在打印后立即递增(在本例中)。所发生的情况是对变量执行比较/打印/某些其他操作,然后在这种操作之后直接递增。如果您有类似于int z = 0; if (1 > z++) { system.out.println (z) }的东西,也会发生同样的事情,它会打印1。

编辑: java中没有序列点。有关更多信息,请阅读以下内容:sequence point concept in java

票数 1
EN

Stack Overflow用户

发布于 2015-10-16 18:28:48

后缀表单首先返回表达式的当前值,然后对该值执行增量操作。因此,它将在第5行本身上递增。

这方面的一个例子是经典的for循环:

代码语言:javascript
运行
复制
for (int i = 0; i<10; i++)
{
  //something
}

我们通常是hear that i++ could be replaced by ++i ,因为for-循环的第三个条件语句是在那里计算的。

因此,如果是i = 5,它就会在语句本身上增加到6,然后继续到for-循环的主体。如果后缀的行为使i在下一次被访问时才会增加,那么i将保留5次循环迭代,这与执行++1完全不同。

票数 1
EN

Stack Overflow用户

发布于 2015-10-16 18:29:34

当你写代码的时候

代码语言:javascript
运行
复制
x++

它为您返回x值,并将x增量为1。

所以它在5号线上增加了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33177196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档