A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵侃 黑马帝   /  2011-8-9 03:18  /  2859 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[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++也没有运行。
这个就是短路行为

5 个回复

倒序浏览
黑马网友  发表于 2011-8-9 07:16:22
沙发
楼主发错版块了吧…
在这里整这东东搞不好会被鄙视诶…
回复 使用道具 举报
黑马网友  发表于 2011-8-10 05:04:30
藤椅
。。。楼主有才
回复 使用道具 举报
学习,学习
回复 使用道具 举报
经验啊... 向楼主学习
回复 使用道具 举报
虽说不看太懂。。。但是还是要向楼主学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马