本帖最后由 何万县 于 2012-4-1 13:40 编辑
public class Test03 {
public static void main(String[] args) {
int m = 5, n = 5;
if ((m != 5) && (n++ == 5)) {
}
System.out.println("a:" + n);
m = n = 5;
if ((m != 5) & (n++ == 6)) {
}
System.out.println("b:" + n);
m = n = 5;
if ((m == 5) || (n++ == 5)) {
}
System.out.println("c:" + n);
m = n = 5;
if ((m == 5) | (n++ == 6)) {
}
System.out.println("d:" + n);
}
}[/code]
输出
a:5
b:6
c:5
d:6
对于&&来说若前一个表达式为false,则不会执行下一个表达式,所以n++没有运行。
对于||来说若前一个表达式为true,则不会执行下一个表达式,所以n++也没有运行。
这个就是短路行为
今天终于弄明白了 |
|