关于 post 与 if 连接的循环递减的问题

Question regarding post decrement in loop jointed with if

下面的代码有什么区别?结果是不同的。 b 是一些 Stringint j = b.length() - 1

if 分支处于循环中,如果这有任何不同,将运行多次。

if (j >=0 && b.charAt(j) == '1') {
    j--;
    carry ++;
}

对比

if (j >=0 && b.charAt(j--) == '1') {
    carry ++;
}

如果第一个条件为真而第二个条件为假,会发生什么情况?

//   true              false
//    V                  V
if (j >=0 && b.charAt(j) == '1') foo();   // foo not executed, j not changed

//    V                  V
if (j >=0 && b.charAt(j--) == '1') foo(); // foo not executed, j decremented