黑马程序员技术交流社区

标题: 逻辑运算符的短路行为 [打印本页]

作者: 赵侃    时间: 2011-8-9 03:18
标题: 逻辑运算符的短路行为
[code=java]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++也没有运行。
这个就是短路行为
作者: 匿名    时间: 2011-8-9 07:16
楼主发错版块了吧…
在这里整这东东搞不好会被鄙视诶…
作者: 匿名    时间: 2011-8-10 05:04
。。。楼主有才
作者: lvwenwen88    时间: 2012-1-4 21:45
学习,学习
作者: lyz1024    时间: 2012-5-20 21:38
经验啊... 向楼主学习
作者: 卜小斌    时间: 2012-6-4 12:17
虽说不看太懂。。。但是还是要向楼主学习一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2