为什么用pre和post运算符递增i值给出一个奇怪的结果?

时间:2017-03-23 05:00:09

标签: java

/Users/veck/Desktop/Project/vendor/bundle/ruby/2.0.0

输出为000000 ...无限

int i = 0;
while(i < 5){
    i = i++;
    System.out.print(i);
}

输出为12345

1 个答案:

答案 0 :(得分:0)

  

可以在(前缀)或之前应用递增/递减运算符   after(postfix)操作数。代码结果++;和++结果;将   两个结果都以1递增。唯一的区别是   前缀版本(++结果)评估为递增的值,   而后缀版本(结果++)评估为原始版本   值。如果你只是执行一个简单的增量/减量,它   你选择哪个版本并不重要。但是如果你使用它   运算符是一个更大的表达式的一部分,你选择的那个可能   发挥显着作用。

来自this link

++i会返回i+1,但i++会返回i