关于 post 与 if 连接的循环递减的问题
Question regarding post decrement in loop jointed with if
下面的代码有什么区别?结果是不同的。 b
是一些 String
和 int 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
下面的代码有什么区别?结果是不同的。 b
是一些 String
和 int 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