在java中增加的短期

时间:2017-02-24 22:19:06

标签: java

如果下面两者有任何不同,我很困惑。我认为他们做的是同样的事情,但是当我编译它时,它们似乎是不同的。先感谢您。

if(hash[s.charAt(leftIdx)]>=0) {
    hash[s.charAt(leftIdx)]++;    
    // do other things        
}

if(hash[s.charAt(leftIdx)]++>=0) {
    // do other things        
}

1 个答案:

答案 0 :(得分:2)

重构以删除后缀运算符,第一个等同于:

          properties: {
            imgsrc: {
                type: String,
                value: function() {return this.resolveUrl('img/12.jpg')}
            }
          }

第二个(假设你的if(hash[s.charAt(leftIdx)] >= 0) { hash[s.charAt(leftIdx)] += 1; // do other things } 成员是整数)等同于:

hash

postfix int tmp = hash[s.charAt(leftIdx)]; hash[s.charAt(leftIdx)] += 1; if(tmp >= 0) { // do other things } 运算符返回预先递增的值,然后将其作为副作用递增。因此,第二个示例中的++在其条件中使用了预先递增的值(由上面的if表示)。